本帖最后由 xuehuayous 于 2015-12-24 08:44 编辑

前几天想封装一个自定义控件,用到Json解析,以前都使用Gson来解析Json数据的,但是想到一个简单的自定义控件就没必要大材小用使用Gson解析了吧。就自己写了下,测试了下效率竟然是Gson的3倍左右!

使用方法

JSON createBean Example
  1. // 使用JSON 操作 工具由JSON字符串封生成实体类
  2. String beanStr = JsonTool.createBean(json, "TestBean");

复制代码

JSON to Bean Example
  1. // 使用JSON 操作 工具将JSON字符串封装到实体类
  2. JSON createBean Example
  3. // 使用JSON 操作 工具由JSON字符串封生成实体类
  4. String beanStr = JsonTool.createBean(json, "TestBean");
  5. [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字符串封装到实体类
  6. YourBean newsCenter = JsonTool.toBean(jsonStr, YourBean.class);

复制代码

Bean to JSON Example
  1. // 使用JSON 操作 工具将实体类封装到JSON字符串
  2. String toJson = JsonTool.toJson(yourBean);

复制代码

使用的时候有以下两点需要注意:

  • Bean对象以及Bean对象的内部类如果覆盖了默认的构造函数,需要提供无参的构造函数;
  • 如果字段类型为List集合且为自定义类类型,则必须为该类的内部类;
  1. public class Bean {
  2. public int id;
  3. public List<Inner1> data;
  4. // Inner1 必须为 Bean的内部类
  5. public class Inner1 {
  6. public int id;
  7. public String title;
  8. List<Inner2> items;
  9. // 因为覆盖了默认的无参构造函数,需要提供无参的构造函数
  10. public Inner1() {
  11. super();
  12. }
  13. public Inner1(int id, String title) {
  14. super();
  15. this.id = id;
  16. this.title = title;
  17. }
  18. // Inner2 必须为 Inner1的内部类
  19. public class Inner2 {
  20. public int id;
  21. public String title;
  22. List<Inner2> items;
  23. }
  24. }
  25. }

复制代码

下载地址:
https://github.com/xuehuayous/Android-JSONTool.gitAndroid Studio引入:

  1. dependencies {
  2. compile 'com.kevin:jsontool:1.0.0'
  3. }

复制代码

    post_newreply
分享到:  QQ好友和群 腾讯微博 QQ空间

收藏8 评分 淘帖 好评 差评

 
   

签到天数: 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>
因为默认情况下每个类都含有一个无参的构造函数,但是如果你写了一个含参数的构造函数,会覆盖掉默认的无参数的构造函数,并且无参数的构造函数是封装的工具中初始化类实例对象所需要的,因此需要自己添加上。
谢谢你的支持。

 
 
   

签到天数: 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.....5462
03-10 16:46:02.726 22196-22225/com.jxjson.com I/MainActivity: android.....1235
03-10 16:46:06.306 22196-22225/com.jxjson.com I/MainActivity: fastjson.....3577
03-10 16:46:07.296 22196-22225/com.jxjson.com I/MainActivity: json-smart.....993
03-10 16:46:09.786 22196-22225/com.jxjson.com I/MainActivity: gson.....2485

这是我刚才的是的,EOE那个打印的是从楼主给的地址下载的,测试了一下没有gson快啊。

JSON Bean 相互转换工具(效率是Gson的两倍以上)的更多相关文章

  1. JSON对象与XML相互转换工具类

    依赖jar <dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId ...

  2. Springboot中使用Xstream进行XML与Bean 相互转换

    在现今的项目开发中,虽然数据的传输大部分都是用json格式来进行传输,但是xml毕竟也会有一些老的项目在进行使用,正常的老式方法是通过获取节点来进行一系列操作,个人感觉太过于复杂.繁琐.推荐一套简单的 ...

  3. 5分钟白嫖我常用的免费效率软件/工具!效率300% up!

    Mac 免费效率软件/工具推荐 1. uTools(Windows/Mac) 还在为了翻译 English 而专门下载一个翻译软件吗? 还在为了格式某个 json 文本.时间戳转换而打开网址百度地址吗 ...

  4. Json:Java对象和Json文本转换工具类

    Json 是一个用于 Java 对象 和 Json 文本 相互转换的工具类. 安装 下载源码 git clone https://github.com/njdi/durian.git 编译源码 cd ...

  5. Web 开发人员必备的随机 JSON 数据生成工具

    在 Web 开发中,经常会需要一些测试数据来测试接口或者功能时候正确.JSON Generator 就是这样一款生成随机 JSON 数据的在线工具,Web 开发人员必备,记得收藏和分享啊. 您可能感兴 ...

  6. [性能] Bean拷贝工具类性能比较

    Bean拷贝工具类性能比较 引言 几年前做过一个项目,接入新的api接口.为了和api实现解耦,决定将api返回的实体类在本地也建一个.这样做有两个好处 可以在api变更字段的时候保持应用稳定性 可以 ...

  7. 使用jackson对Java对象与JSON字符串相互转换的一些总结

    本文为菠萝大象原创,如要转载请注明出处.http://www.blogjava.net/bolo 代码无真相,为了最简单的说明,我直接上代码. public class User { private  ...

  8. 简单的map转换成Bean的工具

    简单的map转换成Bean的工具 package com.sd.microMsg.util; import java.lang.reflect.Field; import java.lang.refl ...

  9. 为什么使用 Containjs 模块化管理工具效率高?

    为什么使用 Containjs 模块化管理工具效率高? 要说明这个首先得说明一下,Containjs 的模块加载原理. 第一步,首先使用异步加载(ajax)在 js 目录下的 app.js 入口模块( ...

随机推荐

  1. ES的优化布局

    分词优化:IK Analyser Elastic Search 5.x官方提供的中文搜索并不友好,分词时经常将一句话分成很多单字,这时候可以使用IK Analyser插件进行优化,当然你在写java代 ...

  2. PHP获取ip与ip所在城市

    1获取真实ip,本地测试总是::1 或者127.0.0.1 或者局域网的ip /** * 获取用户真实 IP */ function getIP() { static $realip; if (iss ...

  3. HDU-2243

    考研路茫茫——单词情结 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  4. window.screen.height和window.screen.availHeight和document.body.clientHeight和document.documentElement.clientHeight

    说这几个属性前 我说一下我的设备 我的设备有两个,一个高度为1080的显示器,一个高度为800的电脑 第一种:window.screen.height 这个方法是获取用户电脑屏幕的高度,是不关浏览器或 ...

  5. Python Flask SQLALchemy基础知识

    一.介绍 SQLAlchemy是一个基于Python实现的ORM框架.该框架建立在 DB API之上,使用关系对象映射进行数据库操作,简言之便是:将类和对象转换成SQL,然后使用数据API执行SQL并 ...

  6. Django-form組件

    Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 一.创建Form类 1 2 3 4 5 6 7 ...

  7. Distinct Subsequences ——动态规划

    Given a string S and a string T, count the number of distinct subsequences of T in S. A subsequence ...

  8. Mysql+ODBC+OpenLDAP

    # 1.安装相关软件yum install wget unixODBC unixODBC-devel libtool-ltdl libtool-ltdl-devel -yyum install mys ...

  9. Java学习笔记(十二)——eclipse和SVN配置,导入SVN服务器项目

    [前面的话] 北京的天气外加自己的不小心终于病了,在病的过程中,感觉身体好着真好,可以学习,可以吃好吃的,可以去运动,这一病了,干什么都感觉没有力气,身体好着真好. 这个文章的背景是:领导把项目最开始 ...

  10. 这种文件别打开, 大小不足1KB, 却可以让你电脑瘫痪

    今年6月份,抖音表白代码火了,不足1kb的txt文件,玩出了新花样.可是你知道吗,这种非常“浪漫”的表白方式,其实存在着很大的风险,甚至会让你的电脑直接瘫痪. 首先,先说一下所谓的表白代码是怎么回事. ...