gson是一個很好用的解析json數(shù)據(jù)的庫,但有時候我們會遇到多層嵌套的json數(shù)據(jù),這時候該怎么處理呢?下面我們來介紹一下使用gson解析多層嵌套json數(shù)據(jù)的方法。
首先,我們先看一下json數(shù)據(jù)的結(jié)構(gòu):
{ "name": "Lucy", "age": 18, "address": { "province": "Beijing", "city": "Haidian", "detail": { "street": "Longze Road", "number": "111" } } }
由以上數(shù)據(jù)可知,我們需要解析出三個信息:name、age和address,其中address又嵌套了兩個信息:province和city和detail,detail又有兩個信息:street和number。
那么,我們該怎么解析呢?
Gson gson = new Gson(); JsonElement element = new JsonParser().parse(jsonStr); JsonObject obj = element.getAsJsonObject(); String name = obj.get("name").getAsString(); int age = obj.get("age").getAsInt(); JsonObject address = obj.getAsJsonObject("address"); String province = address.get("province").getAsString(); String city = address.get("city").getAsString(); JsonObject detail = address.getAsJsonObject("detail"); String street = detail.get("street").getAsString(); String number = detail.get("number").getAsString();
首先,我們利用Gson庫創(chuàng)建一個Gson對象和JsonParser對象,并用parse方法將json字符串解析成JsonElement對象,再將JsonElement對象轉(zhuǎn)化成JsonObject對象。
然后,我們就可以通過get方法獲取每一個信息的值了,例如:name和age。
處于多層嵌套的address信息需要分步獲取,首先獲取到address的JsonObject對象,再從中獲取province和city信息。
最后,通過獲取到的JsonObj對象,我們可以獲取嵌套在其中的detail信息的JsonObject對象,并通過get方法獲取street和number。
以上便是使用gson解析多層嵌套json數(shù)據(jù)的方法。