快速上手Gson解析json
阿新 • • 發佈:2018-12-29
Gson(google封裝的)的一款解析json的工具類
匯入jar包。jar包可以通過Maven倉庫下載
https://mvnrepository.com/artifact/com.google.code.gson/gson
json例子:
直接上程式碼:
// strResult 就是原始json字串 JsonObject object = new JsonParser().parse(strResult).getAsJsonObject(); // 獲取data裡面的陣列 JsonArray dateArray = object.getAsJsonArray("data"); // 然後遍歷陣列物件 for (JsonElement jsonElement : dateArray) { JsonObject asJsonObject = jsonElement.getAsJsonObject(); }
看看數組裡面每一個元素又是什麼,挺複雜的吧,不過想要獲取你想要的也是很容易。:
for (JsonElement jsonElement : dateArray) { JsonObject asJsonObject = jsonElement.getAsJsonObject(); // 直接獲取type屬性 String type = asJsonObject.get("type").getAsString(); System.out.print("type:" + type + "\n"); // 獲取user裡面的avatar_url JsonElement user = asJsonObject.get("user"); if (user != null) { JsonObject userobj = user.getAsJsonObject(); String avatar_url = userobj.get("avatar_url").getAsString(); System.out.println("avatar_url:" + avatar_url); arrayList.add(avatar_url); } //假如裡面又有一個數組物件就用asJsonObject .getAsJsonArray("XXX");然後再遍歷,套路都是一樣的。 //獲取analytics裡面的onload下的url JsonElement analytics = asJsonObject.get("analytics"); if (analytics != null) { JsonObject analyticsObject = analytics.getAsJsonObject(); JsonElement onloadElement = analyticsObject.get("onload"); if (onloadElement != null ) { String onloadUrl = onloadElement.getAsJsonObject().get("url").getAsString(); System.out.println(onloadUrl); } } }
把java物件轉為json字串就更簡單了
Gson gson = new Gson();
String json = gson.toJson(物件);
如果你需要的東西比較多,就需要javaBean來處理比較簡單。
JsonArray asJsonArray = new JsonParser().parse(strResult).getAsJsonObject().getAsJsonArray("data"); for (JsonElement jsonElement : asJsonArray) { JsonObject asJsonObject = jsonElement.getAsJsonObject(); JsonElement userE = asJsonObject.get("user"); if (userE != null) { User user = new Gson().fromJson(userE, new TypeToken<User>() {}.getType()); System.out.println(user.toString()); } }
這裡用到了TypeToken這個類泛型裡面的的User就是你所要封裝的實體類,注意名字需要你json的欄位一樣