JSON解析

来源:互联网 发布:qq飞升锻体进阶数据 编辑:程序博客网 时间:2024/05/16 10:32
JSON是一种和XML差不多的一种实用性非常广泛的语言,主要用于数据的描述。
相关概念性的东西,在此就不再做多的介绍。
和Xml一样,json描述的数据,通常情况下在程序中是需要经过解析之后才能使用的。


解析json数据有很多中方法,可以使用官方提供的JSONObject,也可以使用谷歌开源库GSON,另外,还有一些第三方的开源库,如:Jackson,FastJSON.


现在要介绍的就是前两种方法:
1.JSONObject
如下json数据:
str = [{"age":"20"},{"name":"haha"},{"id":"123456"}]
首先这是一个json数组,所以先用方法JSONArray
JSONArray jsonarray = new JSONArray(str);//先获得数组对象
for(int i=0;i<jsonarray.length;i++){//把数组分开
JSONObject jsonObject = jsonarray.getJSONObject(i);//的到解析json的对象
String id = jsonObject.getString("id"); //解析出数据
String age = jsonObject.getString("age");
String name = jsonObject.getString("name");
}


2.GSON
通过第一个方法,我们发现解析json并没有那么复杂。
但是,GSON比第一个还要简单。
GSON是谷歌提供的开源库,并没有集成到系统中,所以如果我们要使用,必须先下载下来,然后才能使用,下载地址:http://code.google.com/p/google-gson/downloads/list。


用法:
Gson的主要用法之一是能自动的将一段json数据映射成一个对象,如下所示:
json(注意,不是json数组)
str = {"age":"20","name":"haha"}
我们可以新建一个Person对象,然后让json中的数据自动的添加到对象中去。
Gson gson = new Gson();
Person person = gson.fromJson(str,person.class);

json数组:
json数组会稍微麻烦一些
我们需要借助TypeToken 将期望解析成的数据类型传入到fromJson()方法中
List<Person> people = gson.fromJson(jsonData, new TypeToken<List<Person>>(){}.getType());


参考文献:《第一行代码》


版权所有,如需转载,请注明出处!
0 1
原创粉丝点击