JAVA 几款Json library的比较

JSON是JavaScript object notation的缩写,是一种轻量级的描述数据的方式,与XML相比,它更小更快更易解析,此外,JSON还具有跨平台的优势。这下面这篇文章我们将要比较7种Java JSON库,我们将测量做Java和JSON对象的相互转换,存取Json对象到文件的速度。

Jackson Library

Jackson是一种“多目的的Java库,它的目标是更快,更轻,更易用”,此外他还提供了3种方法来处理JSON格式

1. 流式API: 能够增量解析/生成JSON

2. 树形模型:在内存中以树形结构来描述JSON文档

3. 数据绑定:JSON与POJO相互转换

Goole-Gson Library

第二个是Gson,它也支持JSON与Java对象的相互转换,并请求支持符合JSON格式的String直接转到JAVA对象而不需要放annotation。

GSON的优点是

1. 提供一个toJson()和fromJson()方法实现JAVA与JSON对象的互转,非常方便

2. 支持JAVA泛型

3. 支持任意复杂的对象

4. allow pre-existing unmodifiable objects to be converted to and from JSON

5. allow custom representation for objects

后面几个JSON库都是无名氏,在下面的图里你会看到他们的名字

基准

我们的测试机器配置为

2.5GHz I5 处理器,Win7 64位,4GB DDR3内存

下面这几幅图画出了集中json库的表现

上图可以看出,序列化和反序列化小数据时,Gson都是最快的

在序列化反序列化大一点的数据时,Gson的成绩倒是不出彩,Jackson表现更好

对于手机用户而言,jar包的大小也很重要,从下图可以看出,Gson jar包相当之小

结论

对于小规模的数据,Gson表现更好,对于大规模数据Jackson更快

时间: 2024-10-12 18:15:22

JAVA 几款Json library的比较的相关文章

两款JSON类库Jackson与JSON-lib的性能对比(新增第三款测试)

本篇文章主要介绍了"两款JSON类库Jackson与JSON-lib的性能对比(新增第三款测试)",主要涉及到两款JSON类库Jackson与JSON-lib的性能对比(新增第三款测试)方面的内容,对于两款JSON类库Jackson与JSON-lib的性能对比(新增第三款测试)感兴趣的同学可以参考一下. 近日做一些性能优化工作,在挑选JSON类库时,发现除了一般常用的JSON-lib外,还有一款号称性能最快的JSON处理器Jackson,于是用上了刚学会的JMeter,对这两个类库进行

JAVA对象转化JSON出现死循环问题

主要是解决JSON因Hibernate映射生成的集合的转化出现的死循环问题. 这个方法很重要 1 public String ajaxJsonByObjectDirecdt(Object obj, String[] filterNames){ 2 JsonConfig jsonConfig = new JsonConfig(); 3 jsonConfig.setIgnoreDefaultExcludes(false); 4 jsonConfig.setCycleDetectionStrategy

FastJson、Jackson、Gson进行Java对象转换Json的细节处理

前言 Java对象在转json的时候,如果对象里面有属性值为null的话,那么在json序列化的时候要不要序列出来呢?对比以下json转换方式 一.fastJson 1.fastJson在转换java对象为json的时候,默认是不序列化null值对应的key的 也就是说当对象里面的属性为空的时候,在转换成json时,不序列化那些为null值的属性 具体案例如下: AutoPartsSearchRequest 有以下属性: public static void main(String[] args

fastJson java后台转换json格式数据

什么事JSON? JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 易于人阅读和编写.同时也易于机器解析和生成. 它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等

java对象转JSON JS取JSON数据

JsonConfig config = new JsonConfig(); config.setJsonPropertyFilter(new PropertyFilter() { @Override public boolean apply(Object arg0, String arg1, Object arg2) { // 过滤掉对象里的包含自己的属性(自己关联自己) if (arg1.equals("wareTypes") || arg1.equals("skillS&

java对象与json对象间的相互转换

1.解析json字符串 将json字符串转换为json对象,然后再解析json对象:. JSONObjectjsonObject = JSONObject.fromObject(jsonStr); 根据json中的键得到它的值 Stringname = jsonObject.getString("name"); int age = jsonObject.getInt("age"); 2.将json字符串转换为java对象 同样先将json字符串转换为json对象,再

JAVA中,JSON MAP LIST的相互转换

1 JSON包含对象和数组,对应于JAVA中的JSONObject,JSONArray 2 String 转JSON对象 JSONObject.fromObject("String"); String 转JSON数组 JSONArray.fromObject("String"); 3 List 和 JSON互转 JSONObject.toBean() JSONArray.fromObject(List) JAVA中,JSON MAP LIST的相互转换,布布扣,bu

Java对象与JSON互相转换jsonlib以及手动创建JSON对象与数组——(二)

首先声明一下,jsonlib转换与GSON相比太差劲了,操作不是一般的繁琐.GSON可以直接转换成各种集合与对象类型.强烈推荐使用GSON.而且GSON一个方法就可以解决,jsonlib转来转去太繁琐了. 手动创建JSONObject与JSONArray有用,用于读取文件对字符串进行处理 -----------------------------jsonlib操作复杂,转换Map与list<map>更是复杂---------------- Jar包 User.java 1 package Te

java对象与json串互转

1:java对象与json串转换: java对象—json串: JSONObject JSONStr = JSONObject.fromObject(object); String str = JSONStr.toString(); json串—java对象: JSONObject jsonObject = JSONObject.fromObject( jsonString ); Object pojo = JSONObject.toBean(jsonObject,pojoCalss); 2:j