您的位置:首页 > Web前端 > JavaScript

JSON的简单和复杂解析

2015-08-15 15:17 816 查看
1、先说简单JSON的解析,这种方式适合JSON数据量不多的解析

如何解析json对象和json数组:

str={ “id”: 1,

“name”:”zs”,

“aihao”:[ “吃”,”吃”,”吃” ],

“married”:true,

“dept”: { “name”:”cwb”, “loc”:”bj” }

}

JSONObject  obj=new JSONObject(str);
obj.getInt("id");
obj.getString("name");
obj.getJSONObject("dept").getString("loc");
obj.getJSONArray("aihao");


str=[ “吃”, “吃”, “吃”, “吃”]

JSONArray ary=new JSONArray(str);
for(int i=0; i<ary.length(); i++){
String ele=ary.getString(i);
}
ary.getInt(index)
ary.getJSONObject(index)
ary.getJSONArray(index)
ary.getXXX(index)


就是JSONObject和JSONArray两个JSON类交替不断的解析Json数据

2、利用GSON来解析JSON数据,用来解析较为复杂的json数据

首先在lib中要有GSON的jar包



比如解析这么一段数据:

json = {"a":"100","b":[{"b1":"b_value1","b2":"b_value2"}, {"b1":"b_value1","b2":"b_value2"}],"c": {"c1":"c_value1","c2":"c_value2"}}


我们需要定义一个序列化的Bean,这里采用内部类的形式,看起来会比较清晰一些

public class JsonBean {
public String a;
public List<B> b;
public C c;

public static class B {

public String b1;

public String b2;
}

public static class C {
public String c1;
public String c2;
}
}


jsonbean定义的规则:

1、内部嵌套的类必须是static的,要不然解析会出错;

2、类里面的属性名必须跟Json字段里面的Key是一模一样的;

3、内部嵌套的用[]括起来的部分是一个List,所以定义为 public List b,而只用{}嵌套的就定义为 public C c,

就是键值对就用string表示,数组就用list表示


最后解析json数据的关键步骤:

Gson gson = new Gson();
java.lang.reflect.Type type = new TypeToken<JsonBean>() {}.getType();
JsonBean jsonBean = gson.fromJson(json, type);</span>


这里有自己写的详细的一个复杂JSON数据解析的DEMO:http://download.csdn.net/detail/biao_suki/9008849
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: