本帖最后由 xuehuayous 于 2015-12-24 08:44 编辑
前几天想封装一个自定义控件,用到Json解析,以前都使用Gson来解析Json数据的,但是想到一个简单的自定义控件就没必要大材小用使用Gson解析了吧。就自己写了下,测试了下效率竟然是Gson的3倍左右!
使用方法
JSON createBean Example
- // 使用JSON 操作 工具由JSON字符串封生成实体类
- String beanStr = JsonTool.createBean(json, "TestBean");
复制代码
JSON to Bean Example
- // 使用JSON 操作 工具将JSON字符串封装到实体类
- JSON createBean Example
- // 使用JSON 操作 工具由JSON字符串封生成实体类
- String beanStr = JsonTool.createBean(json, "TestBean");
- [align=left][font=Helvetica Neue, Helvetica, Segoe UI, Arial, freesans, sans-serif][color=#333333][b]JSON to Bean Example[/b][/color][/font][/align][code]// 使用JSON 操作 工具将JSON字符串封装到实体类
- YourBean newsCenter = JsonTool.toBean(jsonStr, YourBean.class);
复制代码
Bean to JSON Example
- // 使用JSON 操作 工具将实体类封装到JSON字符串
- String toJson = JsonTool.toJson(yourBean);
复制代码
使用的时候有以下两点需要注意:
- Bean对象以及Bean对象的内部类如果覆盖了默认的构造函数,需要提供无参的构造函数;
- 如果字段类型为List集合且为自定义类类型,则必须为该类的内部类;
- public class Bean {
- public int id;
- public List<Inner1> data;
- // Inner1 必须为 Bean的内部类
- public class Inner1 {
- public int id;
- public String title;
- List<Inner2> items;
- // 因为覆盖了默认的无参构造函数,需要提供无参的构造函数
- public Inner1() {
- super();
- }
- public Inner1(int id, String title) {
- super();
- this.id = id;
- this.title = title;
- }
- // Inner2 必须为 Inner1的内部类
- public class Inner2 {
- public int id;
- public String title;
- List<Inner2> items;
- }
- }
- }
复制代码
下载地址: https://github.com/xuehuayous/Android-JSONTool.gitAndroid Studio引入:
- dependencies {
- compile 'com.kevin:jsontool:1.0.0'
- }
复制代码
|