认识Gson解析Json
2016-07-30 11:36
363 查看
JSON有两种表示结构,对象和数组。
1、对象–》以”{”大括号开始,以”}”大括号结束。中间部分由0或多个以”,”分隔的”key(关键字)/value(值)”对构成,关键字和值之间以”:”分隔,语法结构如代码。
2、数组–》以”[”开始,”]”结束。中间由0或多个以”,”分隔的值列表组成,语法结构如代码。
2.1、客户端与服务器进行数据交互时,常常需要将数据在服务器端将数据转化成字符串并在客户端对json数据进行解析生成对象。但是用jsonObject和jsonArray解析相对麻烦。利用Gson和阿里的fastjson可以很方便的将下面四种常用的数据转换成json字符串,并能够将其解析成原数据对象。
3、json字符串:指的是符合json格式要求的js字符串。例如:var jsonStr = “{StudentID:’100’,Name:’tmac’,Hometown:’usa’}”;
4、json对象:指符合json格式要求的js对象。例如:var jsonObj = { StudentID: “100”, Name: “tmac”, Hometown: “usa” };
5、普通的json解析方法即JsonObject和JsonArray的配合使用,这对于解析小数据的json数据还是比较实用,但是当解析json数据比较复杂的时候这种方法就显得比较吃力也比较麻烦了,解析json数据的另外一种方法就是通过Gson解析:
很多时候大家都是不知道这个Bean是该怎么定义,这里面需要注意几点:
1、内部嵌套的类必须是static的,要不然解析会出错;
2、类里面的属性名必须跟Json字段里面的Key是一模一样的;
3、内部嵌套的用[]括起来的部分是一个List,所以定义为 public List b,而只用{}嵌套的就定义为 public C c,
这json使用Gson解析就比较简单,需要定义一个序列化的Bean,这里采用内部类的形式
1、对象–》以”{”大括号开始,以”}”大括号结束。中间部分由0或多个以”,”分隔的”key(关键字)/value(值)”对构成,关键字和值之间以”:”分隔,语法结构如代码。
{ key1:value1, key2:value2, }
2、数组–》以”[”开始,”]”结束。中间由0或多个以”,”分隔的值列表组成,语法结构如代码。
[ { key1:value1, key2:value2 }, { key3:value3, key4:value4 } ]
2.1、客户端与服务器进行数据交互时,常常需要将数据在服务器端将数据转化成字符串并在客户端对json数据进行解析生成对象。但是用jsonObject和jsonArray解析相对麻烦。利用Gson和阿里的fastjson可以很方便的将下面四种常用的数据转换成json字符串,并能够将其解析成原数据对象。
类型一:JavaBean 类型二:List<JavaBean> 类型三:List<String> 类型四:List<Map<String,Object>>
3、json字符串:指的是符合json格式要求的js字符串。例如:var jsonStr = “{StudentID:’100’,Name:’tmac’,Hometown:’usa’}”;
4、json对象:指符合json格式要求的js对象。例如:var jsonObj = { StudentID: “100”, Name: “tmac”, Hometown: “usa” };
5、普通的json解析方法即JsonObject和JsonArray的配合使用,这对于解析小数据的json数据还是比较实用,但是当解析json数据比较复杂的时候这种方法就显得比较吃力也比较麻烦了,解析json数据的另外一种方法就是通过Gson解析:
很多时候大家都是不知道这个Bean是该怎么定义,这里面需要注意几点:
1、内部嵌套的类必须是static的,要不然解析会出错;
2、类里面的属性名必须跟Json字段里面的Key是一模一样的;
3、内部嵌套的用[]括起来的部分是一个List,所以定义为 public List b,而只用{}嵌套的就定义为 public C c,
String json = {"a":"100", "b":[{"b1":"b_value1","b2":"b_value2"}, {"b1":"b_value1","b2":"b_value2"}], "c": {"c1":"c_value1","c2":"c_value2"} }
这json使用Gson解析就比较简单,需要定义一个序列化的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; } }
相关文章推荐
- JS权威指南读书笔记(二)
- 前端速学成财:第一课-JavaScript历史
- [JSP] c:forEach 输出序号 每行自动生成序号
- js事件详解(2)事件对象
- 如何检测JavaScript的各种类型
- 在chorme上调试 js
- JSP中的Script标签
- OC调用JS(stringByEvaluatingJavaScriptFromString)
- 关于js日期对象二三事
- jsp-九大内置对象
- javascript基础-黑白反斗棋
- javascript基础-猜拳游戏
- javascript基础-翻牌游戏
- javascript基础-抢购器与双色球模拟摇奖器
- javascript基础-窗口对象(window)
- javascript基础-定时器
- javascript基础-提交事件
- javascript基础-常见控件事件处理
- javascript基础-实现简单功能
- Javascript 严格模式详解