Gson是Google開源的Java庫,用于序列化和反序列化Java對象與JSON。Gson可以解析JSON字符串中的嵌套對象,使得在服務器端返回一個包含多個對象的JSON字符串時,在客戶端可以方便地進行解析和處理。
首先,我們需要在項目中添加Gson庫的依賴。
dependencies { implementation 'com.google.code.gson:gson:x.x.x' }
其中,x.x.x代表Gson庫版本號。
接下來,我們來看一個示例的JSON字符串:
{ "name": "張三", "age": 18, "university": { "name": "清華大學", "address": "北京市海淀區" } }
可以看到,JSON字符串中包含了一個嵌套對象university。在Java代碼中解析該JSON字符串的過程如下:
Gson gson = new Gson(); String jsonStr = "{\"name\":\"張三\",\"age\":18,\"university\":{\"name\":\"清華大學\",\"address\":\"北京市海淀區\"}}"; JsonElement jsonElement = gson.fromJson(jsonStr, JsonElement.class); JsonObject jsonObject = jsonElement.getAsJsonObject(); String name = jsonObject.get("name").getAsString(); int age = jsonObject.get("age").getAsInt(); JsonObject universityObject = jsonObject.getAsJsonObject("university"); String universityName = universityObject.get("name").getAsString(); String universityAddress = universityObject.get("address").getAsString();
在這段代碼中,首先將JSON字符串轉為JsonElement對象,然后通過getAsJsonObject()方法轉為JsonObject對象,再使用get()方法獲取指定字段的值,其中university字段又是一個嵌套對象,因此需要再次使用getAsJsonObject()方法獲取它的值。
通過以上代碼的解析,我們成功地獲取了嵌套在JSON字符串中的對象university的值,實現了JSON解析中嵌套對象的獲取。