现在json的第三方解析工作很多,如json-lib,gson,jackson,fastjson等等。在我们完成一般的json-object转换工作时,几乎都没有任何问题。
但是当数据的量上来时,他们的性能几何呢?我着手测试了一下gson和jackson,其他的如json-lib性能很差,fastjson虽然性能很好,但是在使用时有些问题,所以这里就没有测试。
简略代码:
//生成较大的json
List list = new ArrayList();
for (int i = 0; i < 500000; i++) {
JsonObject obj = new JsonObject();
obj.setId(i);
obj.setName("name" + String.valueOf(i));
list.add(obj);
}
Gson gson = new GsonBuilder().create();
String str = gson.toJson(list);
//1,gson解析
long start1 = System.currentTimeMillis();
List l = gson.fromJson(str, new TypeToken>() {
}.getType());
System.out.println("gson time elapse:" + (System.currentTimeMillis() - start1));
System.out.println(l.size());
//2,jackson解析
ObjectMapper mapper = new ObjectMapper();
long start2 = System.currentTimeMillis();
List l2 = mapper.readValue(str, new TypeReference>() {
});
System.out.println("jackson time elapse:" + (System.currentTimeMillis() - start2));
System.out.println(l2.size());
测试结果:
数据集 gson耗时 Jackson耗时
10w 1366 138
20w 2720 165
30w 4706 332
40w 9526 317
50w 本机OOM 363
从测试结果可以看出,jackson的性能几乎是gson的10倍,而且随着数据的增长,jackson的耗时也都很平稳,而gson则耗时增长明显,最后直接OOM了,
至于为什么jackson性能这么好,我也没有细究,可能是由于jackson采用流的处理方式吧。
参考:
http://blog.itpub.net/28912557/viewspace-1267965/
http://blog.csdn.net/u014315849/article/details/52126653
分享到:
相关推荐
Fastjson是阿里巴巴的一个高性能的JSON库,它的主要特点是解析速度快,内存消耗低。Fastjson提供了简单直观的API,使得JSON与Java对象之间的转换变得异常简便。此外,它还支持JSON到Java对象的映射,以及JSON到XML...
### Gson与Jackson的对比 - **Gson** 更加简洁,适合快速开发,但灵活性相对较低。 - **Jackson** 提供了更复杂的配置和优化,如注解支持、流处理模式等,适合大型项目。 在实际使用中,选择Gson还是Jackson通常取...
在Java中,有多个库可以帮助我们解析和生成JSON,如Gson、Jackson和json-lib。以下是对这三个库的详细介绍: 1. Gson: Gson是Google提供的一个开源库,用于将Java对象转换为JSON字符串,反之亦然。它提供了简单...
本文将从性能、功能、易用性和社区支持四个方面比较 fastjson、jackson 和 gson,帮助读者更好地选择合适的 JSON解析器。 性能 fastjson 是阿里出品的 JSON 解析器,具有高性能和低内存占用的特点。fastjson 使用...
例如,你可以使用这些库将JSON文件内容读入内存,进行解析,然后与Java对象交互,实现数据的处理和分析。在实际编程中,我们可能需要根据文件内容的具体结构来设计对应的Java类,以便正确地反序列化JSON数据。
【Gson解析JSON数据】 Gson是Google提供的一款强大的Java库,用于在Java对象和JSON数据之间进行映射。它可以将任何Java对象转换为它的JSON表示形式,反之亦然。在处理JSON数据时,我们经常遇到两种常见的数据结构:...
在“三种json解析库举例”这个压缩包中,你可能会找到使用这三个库解析JSON的示例代码,这对于理解和比较它们的使用方式非常有帮助。通过实践,你可以更好地了解每个库的特点,并根据项目需求选择最合适的工具。
在这个主题中,我们将深入探讨四种常用的序列化工具:Gson, Jackson, FastJson和ProtoBuf,以及与ProtoBuf相关的`proto.exe`工具。 1. Gson(Google Gson): Gson是由Google提供的Java库,用于将Java对象转换为...
与其他Java JSON库(如Jackson、org.json等)相比,Gson以其简洁的API、良好的性能和灵活性受到许多开发者的青睐。然而,选择哪个库取决于具体项目的需求,比如是否需要更复杂的配置、更高的性能或者更丰富的功能。 ...
描述中提到的"json解析的第三方jar包"很可能指的是如Gson、Jackson、org.json或Fastjson等流行的JSON解析库。这些库提供了一系列API,使得开发者可以方便地将JSON字符串转换为Java对象,或者将Java对象转换为JSON...
9. 性能比较: 各库在性能上有所差异,Jackson通常被认为是最快速的,而Gson则因其简单易用而受到欢迎。实际使用时,应根据项目需求和性能测试结果来选择。 总之,JSON解析JAR包是开发中不可或缺的工具,它为Java...
在Android开发中,JSON解析是至关重要的,因为很多API接口返回的数据都是JSON格式。 在Android中,我们可以使用多种库来解析JSON数据,如`org.json`库(内置于Android SDK)、Gson库、Jackson库以及FastJson库等。...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web服务之间的数据传输。它以文本形式存储和传递数据,结构清晰,...正确地使用JSON解析包,可以使得数据的序列化和反序列化变得简单高效。
总之,JSON解析工具类是开发中不可或缺的部分,它简化了JSON与Java对象之间的转换,提高了代码的可读性和可维护性。了解并熟练使用这样的工具类,能够使你在处理JSON数据时更加得心应手。在选择具体的实现库时,需要...
本文将深入探讨Android中的三种JSON解析方法:Gson库、org.json库以及Jackson库。 首先,Gson库是由Google提供的一个Java库,它能将Java对象转换为JSON字符串,反之亦然。在Android中,使用Gson进行JSON解析非常...
阿里JSON解析包不仅仅包含核心的JSON解析功能,还可能包含一些额外的特性,例如支持JSONPath(类似XPath的JSON查询语言)、JSON Schema验证、以及对于Gson、Jackson等其他JSON库的兼容接口等。在使用过程中,开发者...
本篇将围绕“Json解析辅助”这一主题,详细讲解JSON的基本概念、结构、解析方法以及相关辅助工具的应用。 1. JSON的基本结构: JSON基于JavaScript的一个子集,主要由对象和数组两种基本结构构成。对象是键值对的...
3. **JSON解析与生成**: JSON数据可以被JavaScript原生解析,而在Java中,通常需要使用如Jackson、Gson、org.json等库进行解析和生成。 4. **JSON安全**: JSONP(JSON with Padding)是跨域数据交互的一种解决方案...
一、JSON解析库 1. Jackson:Jackson是Java中最流行的JSON处理库之一,提供了多种API用于序列化和反序列化JSON。使用Jackson的`com.fasterxml.jackson.databind.ObjectMapper`类可以轻松地将JSON字符串转换为Java...
JSON解析是Android应用开发中常见的任务,用于处理服务器返回的数据。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在这个项目中,我们主要关注...