近几天做了一个项目,需要解析大量的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. {HDU}{2516}{取石子游戏}{斐波那契博弈}

    题意:给定一堆石子,每个人最多取前一个人取石子数的2被,最少取一个,最后取石子的为赢家,求赢家. 思路:斐波那契博弈,这个题的证明过程太精彩了! 一个重要的定理:任何正整数都可以表示为若干个不连续的斐 ...

  2. 记录下最近项目中常用到的SQL语句

    1  实现对字符串的Spilt功能. 比如查出“I have a dream!”总共有几个单词,需要以' '分割,然后再求出总数. ALTER function [dbo].[fc_SpiltStri ...

  3. NodeJS 常用模块

    NodeJS 模块: n:NodeJS 版本管理/切换 参考: https://github.com/tj/n ExpressJS:Web 框架 参考: http://expressjs.com/ m ...

  4. MVC数据传递和多表单

    1.数据传递(1)session和TempData 全局变量,可以将值从一个动作传递到另一个动作,也可以从控制层传递到视图层. TempData取一遍值后自动销毁. session使用: //控制器中 ...

  5. scala 学习之: list.fill 用法

    题目描述: Decode a run-length encoded list. Given a run-length code list generated as specified in probl ...

  6. CC1310电源

    CC1310的电源好扯,把目前遇到的问题记录一下 1 全局LDO和DCDC的输出电压问题 手册上要求的VDDR和VDDR_RF的电压范围是1.7~1.95V,但实际测试时, 在接收状态下无论是全局LD ...

  7. Java NIO教程 目录

    "Java NIO系列教程" 是笔者hans为NIO的初学者编写的一份入门教程,想仔细学习的同学可以按照顺序去阅读.由于我学的也不是特别的精,所以错误.疏漏在所难免,希望同学们指正 ...

  8. SeekBar 圆角问题

    用图片做背景色,最后处理成.9.png的.用普通png图片做背景,则两边会有圆角出现,原因是图片不适合SeekBar尺寸,因而被拉伸或压缩,从而产生圆角. <?xml version=" ...

  9. modelsim无法识别include文件的解决方法

    modelsim发现include关联的文件编译报语法错误,文件名需要写绝对路径,即使这个文件和工程其它文件在一个目录上.例如只写成 `include "c0_ddr3_model_para ...

  10. 读取XML 发送网页版邮件

    DataSet ds = new DataSet(); ds.ReadXml(AppDomain.CurrentDomain.BaseDirectory + "XML\\Mail.xml&q ...