对于大数据量的Json解析
近几天做了一个项目,需要解析大量的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解析的更多相关文章
- 参考 ZTree 加载大数据量。加载慢问题解析
参考 ZTree 加载大数据量. 1.一次性加载大数据量加载说明 1).zTree v3.x 针对大数据量一次性加载进行了更深入的优化,实现了延迟加载功能,即不展开的节点不创建子节点的 DOM. 2) ...
- jquery.datatable.js与CI整合 异步加载(大数据量处理)
http://blog.csdn.net/kingsix7/article/details/38928685 1.CI 控制器添加方法 $this->show_fields_array=arra ...
- mysql innobackupex xtrabackup 大数据量 备份 还原
大数据量备份与还原,始终是个难点.当MYSQL超10G,用mysqldump来导出就比较慢了.在这里推荐xtrabackup,这个工具比mysqldump要快很多. 一.Xtrabackup介绍 1, ...
- asp.net中绘制大数据量的可交互的图表
在一个asp.net项目中要用到能绘制大数据量信息的图表,并且是可交互的(放大.缩小.导出.打印.实时数据),能够绘制多种图形. 为此进行了多方调查预研工作,预研过微软的MsChart图表组件.基于j ...
- mysql innobackupex xtrabackup 大数据量 备份 还原(转)
原文:http://blog.51yip.com/mysql/1650.html 作者:海底苍鹰 大数据量备份与还原,始终是个难点.当MYSQL超10G,用mysqldump来导出就比较慢了.在这里推 ...
- 大数据量查询优化——数据库设计、SQL语句、JAVA编码
数据库设计方面: 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将 ...
- ios 网络数据下载和JSON解析
ios 网络数据下载和JSON解析 简介 在本文中笔者将要给大家介绍ios中如何利用NSURLConnection从网络上下载数据,如何解析下载下来的JSON数据格式,以及如何显示数据和图片的异步下载 ...
- sql大数据量查询的优化技巧
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...
- iOS之网络数据下载和JSON解析
iOS之网络数据下载和JSON解析 简介 在本文中笔者将要给大家介绍IOS中如何利用NSURLconnection从网络上下载数据以及如何解析下载下来的JSON数据格式,以及如何显示数据和托图片的异步 ...
随机推荐
- 项目在build machine中失败,本地Build成功的程序集版本问题
MSBuild在build machine中遇到which has a higher version than its reference assembly:(in my case let's say ...
- HTML5标签的3大类型
1>块级标签: 独占一行的标签,能随时设置宽度和高度 比如:div.p.h1.h2.u1.li 2>行内标签(内联标签): 多个行内标签能同时显示在一行,宽度和高度取决于内容的尺寸 比如: ...
- Button模板,样式
一.button控件上的模板 <Button Content="Button" Height="25" HorizontalAlignment=" ...
- jQuery multiselect的使用
1,下载插件 https://github.com/ehynds/jquery-ui-multiselect-widget
- IOS系列swift语言之课时六
这节课需要讲的就是协议,方法,委托模式(依赖倒转) 代码刷起中...... // // main.swift // ExAndProtocol // // Created by David on 23 ...
- mysql基础用法
<1>内置函数: locate('aa', '字段名');查询aa在字段中是否存在,返回1或0 replace('字段名','需替换的字符','替换后的字符') <2>函数: ...
- 解决Linux系统下程序找不到动态库的方法
思路:一般来说,通过make命令已经将程序依赖的动态库编译出来了,通过make install命令已经将动态库安装到系统的某个路径下.找没找到动态库就看这个路径是否包含在系统默认搜索动态库的路径中,如 ...
- 第四章 ngrok使用
网址(下载):http://www.ngrok.cc/ 注册:http://www.ngrok.cc/login 管理后台:http://www.ngrok.cc/user.html 创建隧道,产生隧 ...
- 关于BaseExpandableListAdapter
首先要明确,可折叠列表在每个项是包含子项的,那么肯定会用到集合嵌套!下面是封装的两个实体类: package com.yx.pojo;public class Chid { privat ...
- Window Server 2012 R2 下 IE11 浏览器 无法安装Flash 怎么解决
不知道是不是我这个的系统的问题,不仅仅是图片有问题,Flash也有问题.用IE打开页面,一直提示安装,简直不胜其烦.尽管我有下载很多浏览器,但习惯了IE,所以也没想用其他浏览器代替IE. 刚开始我是点 ...