GSON是Google推出的一款Java庫,用于將Java對象與JSON格式的數(shù)據(jù)相互轉換。GSON支持標準的JSON格式,但有時我們會遇到一些特殊的JSON格式,例如:
{ "name": "Tom", "age": 18, "address":{ "street": "Main street", "city": "New York", "zip": "10001" } }
以上是一個嵌套的JSON格式,數(shù)據(jù)結構比較復雜,如果按照GSON默認的方式解析,就需要定義多個Java類來映射它的層次結構。但是,如果我們只需要其中某些字段的值,就會顯得十分麻煩。
此時,我們可以使用GSON的JsonElement類來解析特殊的JSON格式。JsonElement類表示的是一個JSON元素,它可以是一個數(shù)組、一個對象或一個基本類型的值。
{ "name": "Tom", "age": 18, "address":[ "Main street", "New York", "10001" ] }
以上是一個數(shù)組格式的JSON,GSON可以通過JsonArray類來處理它。JsonArray是一個有序的集合,它可以存儲有序的元素序列。
下面是使用GSON解析特殊JSON格式的代碼示例:
String json = "{\"name\":\"Tom\",\"age\":18,\"address\":{\"street\":\"Main street\",\"city\":\"New York\",\"zip\":\"10001\"}}"; //解析嵌套JSON格式 JsonObject jsonObject = new JsonParser().parse(json).getAsJsonObject(); String name = jsonObject.get("name").getAsString(); int age = jsonObject.get("age").getAsInt(); JsonObject addressObject = jsonObject.get("address").getAsJsonObject(); String street = addressObject.get("street").getAsString(); String city = addressObject.get("city").getAsString(); String zip = addressObject.get("zip").getAsString(); //解析數(shù)組JSON格式 String jsonArray = "{\"name\":\"Tom\",\"age\":18,\"address\":[\"Main street\",\"New York\",\"10001\"]}"; JsonObject jsonObject1 = new JsonParser().parse(jsonArray).getAsJsonObject(); String name1 = jsonObject1.get("name").getAsString(); int age1 = jsonObject1.get("age").getAsInt(); JsonArray addressArray = jsonObject1.get("address").getAsJsonArray(); String street1 = addressArray.get(0).getAsString(); String city1 = addressArray.get(1).getAsString(); String zip1 = addressArray.get(2).getAsString();
以上代碼示例實現(xiàn)了對嵌套JSON格式和數(shù)組JSON格式的解析。我們可以通過JsonElement、JsonObject、JsonArray等類來解析各種JSON格式。
上一篇html怎么設置圖片格式
下一篇vue $用法