近几天做了一个项目,需要解析大量的json数据,有一万多条,以前我用的都是Gson包去自动解析,但是速度真是不敢恭维,于是我又去查了其它的方法,发现fastjson的解析,发现速度直的是很快,在此我不得不佩服,这个包的作者,直是很厉害,能写出这样一个工具,我在网上看了,这个工具还有很多问题,但也可以理解,“人无完人嘛”,何况是工具呢?,所以自己研究了一下这个工具,在此分享给大家 ,希望有所帮助。
对于这个包的功能不差于google提供的Gson包,它也支持很多,比如 时间格式 ,泛型,注解,集合解析等等。
我下载的包1.1.6,我测试了一下,还算可以,大家 可以 尝试一下,下面我简要说一下两种使用方法,一个是注解,一个没有注解。
**1、如何使用注解**
首先我们要定义自己的一个类,举个例子,

这是个简单的json`{"name":"ljw",age:18}`
```java
//这是一个Person类
public class Person{
@JSONField(name = "Name")
private String name;
@JSONField(name = "Age")
private int age;
//对于这个无参构造,在此是一个要有的,如果不想用无参构
造,大家可以尝试这个注解@JSONCreater,它可以顶替这个无参 构造函数
public Person(){}
//这里的set方法我们一定要有否会报错
public void setName(String name){
this.name = name;
}
public void setAge(int age){
this.age = age;
}

public String getName(){
return this.name;
}

public int getAge(){
return this.age;
}
}
```

下面我们就可心用这个类去解析了,

```java
Person person = JSON.parseObject("json",Person.class);
```

这个我们就可以解析成一个类了,同样们们也也可以解析一个List集合,方法和google提供 的GSon包差不多一们,只不过是注解的方式 不同。如果我们想把一个javabean解析成一个json格式的字符串,也很简单,比如

```java
String jsonString = JSON.toJSONString(javabean). 
```
这样就ok 了。

**2、不用注解解析的方式**
这个方法只要把上面的方法的注解去除就可以了,默解析的字段名子是类的属性兔名字,比如“name” "age".
其实我们大可不必用注解去解析,个人感觉不太方法,但这只是我个从的意见,因为在大多时候我们需要从服务器上获取数据,这个的json是不受我们自己控制的, 服务给的字段可能是首字母大写,如果我们不用注解就需要让我们类的属性名字首字母也大写,但这不符合java的设计原则, 在这个时候,注解的使用是很有必要的。

以上就是自己的对Fastjson的简单介绍,如果希望了解更多,大家 可以到官网学习一下。

对于大数据量的Json解析的更多相关文章

  1. 参考 ZTree 加载大数据量。加载慢问题解析

    参考 ZTree 加载大数据量. 1.一次性加载大数据量加载说明 1).zTree v3.x 针对大数据量一次性加载进行了更深入的优化,实现了延迟加载功能,即不展开的节点不创建子节点的 DOM. 2) ...

  2. jquery.datatable.js与CI整合 异步加载(大数据量处理)

    http://blog.csdn.net/kingsix7/article/details/38928685 1.CI 控制器添加方法 $this->show_fields_array=arra ...

  3. mysql innobackupex xtrabackup 大数据量 备份 还原

    大数据量备份与还原,始终是个难点.当MYSQL超10G,用mysqldump来导出就比较慢了.在这里推荐xtrabackup,这个工具比mysqldump要快很多. 一.Xtrabackup介绍 1, ...

  4. asp.net中绘制大数据量的可交互的图表

    在一个asp.net项目中要用到能绘制大数据量信息的图表,并且是可交互的(放大.缩小.导出.打印.实时数据),能够绘制多种图形. 为此进行了多方调查预研工作,预研过微软的MsChart图表组件.基于j ...

  5. mysql innobackupex xtrabackup 大数据量 备份 还原(转)

    原文:http://blog.51yip.com/mysql/1650.html 作者:海底苍鹰 大数据量备份与还原,始终是个难点.当MYSQL超10G,用mysqldump来导出就比较慢了.在这里推 ...

  6. 大数据量查询优化——数据库设计、SQL语句、JAVA编码

    数据库设计方面: 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将 ...

  7. ios 网络数据下载和JSON解析

    ios 网络数据下载和JSON解析 简介 在本文中笔者将要给大家介绍ios中如何利用NSURLConnection从网络上下载数据,如何解析下载下来的JSON数据格式,以及如何显示数据和图片的异步下载 ...

  8. sql大数据量查询的优化技巧

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...

  9. iOS之网络数据下载和JSON解析

    iOS之网络数据下载和JSON解析 简介 在本文中笔者将要给大家介绍IOS中如何利用NSURLconnection从网络上下载数据以及如何解析下载下来的JSON数据格式,以及如何显示数据和托图片的异步 ...

随机推荐

  1. php生成json或者xml数据

    , ,'数据返回成功',$arr);echo $xml;?>

  2. bat批处理重命名问题

    因为要重命名的字符串中有文字,导致重命名出来的文件名都变为乱码了,查理一下需要加两句话 1. @Echo Off Chcp 65001>nul SetLocal EnableDelayedExp ...

  3. 【网络编程/C++】修改本机ip地址

    昨天学会了编程实现获取本地网卡信息,今天再接再砺学会了修改本机ip地址.其实原理很简单就是用c++调用一下dos命令而已,不得不说,dos命令实在是太强大了,当然听说还有种修改注册表的方法,不过没有试 ...

  4. 数字信号处理--Z变换,傅里叶变换,拉普拉斯变换

    傅立叶变换.拉普拉斯变换.Z变换最全攻略 作者:时间:2015-07-19来源:网络       傅立叶变换.拉普拉斯变换.Z变换的联系?他们的本质和区别是什么?为什么要进行这些变换.研究的都是什么? ...

  5. python之路-Day10

    操作系统发展史介绍 进程.与线程区别 python GIL全局解释器锁 线程 语法 join 线程锁之Lock\Rlock\信号量 将线程变为守护进程 Event事件 queue队列 生产者消费者模型 ...

  6. new和alloc的区别

    简单来说,new和alloc在功能上基本没有什么区别,都是分配内存,初始化对象. 但是,调用new的话,只能通过默认的init方法来初始化对象,而alloc可以通过其他的初始化方法如:-(instan ...

  7. JVM垃圾收集器基本思想

    要做JVM内存垃圾回收首先要明确两个问题: 哪些内存需要回收 怎么回收 什么时候回收 1.哪些内存需要回收 jvm内存可以分为两类: 线程独占内存区域(程序计数器.虚拟机栈.本地方法栈) 线程共享区域 ...

  8. java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.

    在ViewPager中,用Fragment显示页面时,报错: java.lang.IllegalStateException: The specified child already has a pa ...

  9. JS中变量名作为if条件的 true/flase

    在Javascript中,可以直接将变量名放到if条件中, var a;//甚至不定义 if (a){ //... } 以下情况被认为是flase: 1.''空的字符串 2.数字0 3.对象null ...

  10. NGUI 使用EventDelegate.Add与UIInput.onSubmit、UIInput.onChange限定编辑框中的内容

    Unity中,使用NGUI,通常为某个控件(如按钮)绑定事件(单击.双击.拖拽.滚轮.选择等)都是用UIEventListener,比如: public void Bind() { UIEventLi ...