本帖最后由 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. HTML5 一篇就够的中文教程

    HTML5 是近十年来 Web 开发标准最巨大的飞跃.HTML5 并非仅仅用来表示 Web 内容,它将 Web 带入一个成熟的应用平台,在 HTML5 平台上,视频.音频.图象.动画,以及同电脑的交互 ...

  2. centos创建子用户

    #adduser 用户名 #passwd 用户名 设置自己的密码即可 授权 个人用户的权限只可以在本home下有完整权限,其他目录要看别人授权.而经常需要root用户的权限,这时候sudo可以化身为r ...

  3. 给mongodb设置密码权限

    昨天装了个mongodb数据库用于测试用,装好后没有密码,现在就讲讲怎么设置密码 1.首先进入C:\mongodb\bin下面运行mongod.exe启动数据库. 2.在相同目录下启动mongo.ex ...

  4. 同步方法-java

    除了同步代码块能实现同步执行外,同步方法也可以. 先看下同步代码块实现同步执行: public class Demo4 { public static void main(String[] args) ...

  5. C#进行Socket通信编程之一

    关于Socket编程的相关资料(含实例)在网上多如牛毛,而我写这篇文章的初衷仅仅是为了记录自己的一些心得体会. Socket提供了这样一个接口,可以方便地使程序员通过其来发送和接收网络上的数据.在利用 ...

  6. H5游戏开发:贪吃蛇

    贪吃蛇的经典玩法有两种: 积分闯关 一吃到底 第一种是笔者小时候在掌上游戏机最先体验到的(不小心暴露了年龄),具体玩法是蛇吃完一定数量的食物后就通关,通关后速度会加快:第二种是诺基亚在1997年在其自 ...

  7. Mac安装Maven

    1.从官网(https://maven.apache.org/download.cgi)下载 Maven 并解压. 2.配置环境 .  vim ~/.bash_profile export MAVEN ...

  8. socket编程的网络协议

    "我们在传输数据时,可以只使用(传输层)TCP/IP协议,但是那样的话,如果没有应用层,便无法识别数据内容" TCP/IP只是一个协议栈,就像程序运行一样,必须要实现运行,同时还要 ...

  9. php api接口校验规则示例

    1.发送 /** * 客户端请求 * @param url 接口地址 * @param array $params(post) * @return json * @throws Exception * ...

  10. 【转载】RecyclerView使用全解析

    崇拜下鸿洋大神,原文地址:http://blog.csdn.net/lmj623565791/article/details/45059587 概述 RecyclerView出现已经有一段时间了,相信 ...