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” }
}
str=[ “吃”, “吃”, “吃”, “吃”]
就是JSONObject和JSONArray两个JSON类交替不断的解析Json数据
2、利用GSON来解析JSON数据,用来解析较为复杂的json数据
首先在lib中要有GSON的jar包
比如解析这么一段数据:
我们需要定义一个序列化的Bean,这里采用内部类的形式,看起来会比较清晰一些
jsonbean定义的规则:
1、内部嵌套的类必须是static的,要不然解析会出错;
2、类里面的属性名必须跟Json字段里面的Key是一模一样的;
3、内部嵌套的用[]括起来的部分是一个List,所以定义为 public List b,而只用{}嵌套的就定义为 public C c,
就是键值对就用string表示,数组就用list表示
最后解析json数据的关键步骤:
这里有自己写的详细的一个复杂JSON数据解析的DEMO:http://download.csdn.net/detail/biao_suki/9008849
如何解析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
相关文章推荐
- 当js中出现 a() is not a function
- 《JavaScript高级程序设计》读书笔记——String方法
- 将JTable加入到JScrollPane后,无法向JScrollPane中添加其他的组件的解决方案
- 关于json解析、读取数据
- js实现touch移动触屏滑动事件
- BZOJ 1014: [JSOI2008]火星人prefix( splay + hash )
- js常用方法:
- 复习:JSP基本语法(JSP注释 + JSP指令 + JSP脚本元素 + JSP动作元素)
- jsp/servlet相关技术 (三) --- jsp编译指令与动作指令
- 几种不同Js引擎
- 自己总结的javascript基础知识
- 无阻塞加载js,防止因js加载不了影响页面显示
- js漂浮广告实现代码
- JavaScript基础学习之-JavaScript权威指南-3.6包装对象
- JavaScript基础学习之-JavaScript权威指南-3.5全局对象
- 《JavaScript DOM 编程艺术》读书心得
- Javascript基础(8)Ajax介绍
- Javascript基础(7)DOM简介
- Javascript基础(6)BOM简介
- Javascript基础(5)对象