谷歌的Gson 解析JSON格式的数据
先创建一个json解析器
JsonParser parse =
new
JsonParser();
都是先转换成JsonObject对象 然后再根据数据类型转为相对应类型的数据(一个JsonObject还可以获得JsonObject对象,JsonArray)
这里有个json数据的文件weather.json 转换成JsonObject对象 里面有key为resultcode,reason的值
JsonObject json=(JsonObject) parse.parse(
new
FileReader(
"weather.json"
));
//创建jsonObject对象
System.out.println(
"resultcode:"
+json.get(
"resultcode"
).getAsInt());
//将json数据转为为int型的数据
System.out.println(
"reason:"
+json.get(
"reason"
).getAsString());
//将json数据转为为String型的数据
JsonObject result=json.get(
"result"
).getAsJsonObject();
J
sonObject today=result.get(
"today"
).getAsJsonObject();
{ "cat":"it", "language":[ {"id":1,"ide":"eclipse","name":Java}, {"id":2,"ide":"XCode","name":"Swift"}, {"id":3,"ide":"Visual Stdio","name":"C#"} ], "pop":true }
解析Json数组
1.先创建一个json解析器
JsonParser parse =
new
JsonParser();
JsonObject object=(JsonObject) parser.parse(
new
FileReader(
"test.json"
));
3.一个JsonObject获得JsonArray
一个for循环JsonArray 对象 array.get(i)的方法那到JsonObject()对象;(后面像上面那样根据数据类型转为相对应类型的数据)
JsonArray array=object.get(
"language"
).getAsJsonArray();
//得到为json的数组
for
(
int
i=
0
;i<array.size();i++){
System.out.println(
"---------------"
);
JsonObject subObject=array.get(i).getAsJsonObject();
System.out.println(
"id="
+subObject.get(
"id"
).getAsInt());
System.out.println(
"name="
+subObject.get(
"name"
).getAsString());
System.out.println(
"ide="
+subObject.get(
"ide"
).getAsString());
}