本帖最后由 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'} 复制代码 post_newreply 分享到: QQ好友和群 腾讯微博 QQ空间 收藏8 评分 淘帖 好评 差评 点评回复 举报 xuehuayous 签到天数: 72 天 连续签到: 1 天 [LV.6]常住居民II 8 主题 195 帖子 852 e币 发消息 推荐 楼主| 发表于 2015-11-23 09:18:44 | 只看该作者 withyi 发表于 2015-11-22 10:25 大神还是不是很理解你说的这句话,能再举例说明一下吗??(新手) Bean对象以及Bean对象的内部类如果覆 ...在帖子末尾的实例中Inner1 为Bean的内部类,并且Inner1含有有参数的构造函数<code>public Inner1(int id, String title)</code>那么就需要提供无参书的构造函数<code>public Inner1() {}</code>因为默认情况下每个类都含有一个无参的构造函数,但是如果你写了一个含参数的构造函数,会覆盖掉默认的无参数的构造函数,并且无参数的构造函数是封装的工具中初始化类实例对象所需要的,因此需要自己添加上。谢谢你的支持。 点评回复 支持 反对 评分 举报 千千睫moon 签到天数: 8 天 连续签到: 1 天 [LV.3]偶尔看看II 40 主题 484 帖子 59 e币 发消息 推荐 发表于 2016-3-10 16:53:33 | 只看该作者 03-10 16:46:01.486 22196-22225/com.jxjson.com I/MainActivity: EOE.....546203-10 16:46:02.726 22196-22225/com.jxjson.com I/MainActivity: android.....123503-10 16:46:06.306 22196-22225/com.jxjson.com I/MainActivity: fastjson.....357703-10 16:46:07.296 22196-22225/com.jxjson.com I/MainActivity: json-smart.....99303-10 16:46:09.786 22196-22225/com.jxjson.com I/MainActivity: gson.....2485这是我刚才的是的,EOE那个打印的是从楼主给的地址下载的,测试了一下没有gson快啊。