`

json解析性能比较(gson与jackson)

    博客分类:
  • JSON
 
阅读更多
现在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
分享到:
评论

相关推荐

    Java四大json库gson+fastjson+jackson+json-lib

    Fastjson是阿里巴巴的一个高性能的JSON库,它的主要特点是解析速度快,内存消耗低。Fastjson提供了简单直观的API,使得JSON与Java对象之间的转换变得异常简便。此外,它还支持JSON到Java对象的映射,以及JSON到XML...

    JSON演示(Gson及Jackson)

    ### Gson与Jackson的对比 - **Gson** 更加简洁,适合快速开发,但灵活性相对较低。 - **Jackson** 提供了更复杂的配置和优化,如注解支持、流处理模式等,适合大型项目。 在实际使用中,选择Gson还是Jackson通常取...

    json解析的几个工具包好gson,jackson,json_lib

    在Java中,有多个库可以帮助我们解析和生成JSON,如Gson、Jackson和json-lib。以下是对这三个库的详细介绍: 1. Gson: Gson是Google提供的一个开源库,用于将Java对象转换为JSON字符串,反之亦然。它提供了简单...

    JSON中fastjson、jackson、gson如何选择.docx

    本文将从性能、功能、易用性和社区支持四个方面比较 fastjson、jackson 和 gson,帮助读者更好地选择合适的 JSON解析器。 性能 fastjson 是阿里出品的 JSON 解析器,具有高性能和低内存占用的特点。fastjson 使用...

    fastjson、gson、jackson序列化和反序列化所用 json

    例如,你可以使用这些库将JSON文件内容读入内存,进行解析,然后与Java对象交互,实现数据的处理和分析。在实际编程中,我们可能需要根据文件内容的具体结构来设计对应的Java类,以便正确地反序列化JSON数据。

    Gson解析(List和Map)格式json数据 - CSDN博客1

    【Gson解析JSON数据】 Gson是Google提供的一款强大的Java库,用于在Java对象和JSON数据之间进行映射。它可以将任何Java对象转换为它的JSON表示形式,反之亦然。在处理JSON数据时,我们经常遇到两种常见的数据结构:...

    三种json解析方法

    在“三种json解析库举例”这个压缩包中,你可能会找到使用这三个库解析JSON的示例代码,这对于理解和比较它们的使用方式非常有帮助。通过实践,你可以更好地了解每个库的特点,并根据项目需求选择最合适的工具。

    序列化工具(Gson, Jackson, FastJson, ProtoBuf)

    在这个主题中,我们将深入探讨四种常用的序列化工具:Gson, Jackson, FastJson和ProtoBuf,以及与ProtoBuf相关的`proto.exe`工具。 1. Gson(Google Gson): Gson是由Google提供的Java库,用于将Java对象转换为...

    解析Json的gson-2.7.jar

    与其他Java JSON库(如Jackson、org.json等)相比,Gson以其简洁的API、良好的性能和灵活性受到许多开发者的青睐。然而,选择哪个库取决于具体项目的需求,比如是否需要更复杂的配置、更高的性能或者更丰富的功能。 ...

    json.rar_JSON_json解析_json解析的jar_解析json

    描述中提到的"json解析的第三方jar包"很可能指的是如Gson、Jackson、org.json或Fastjson等流行的JSON解析库。这些库提供了一系列API,使得开发者可以方便地将JSON字符串转换为Java对象,或者将Java对象转换为JSON...

    最全的 json解析JAR包

    9. 性能比较: 各库在性能上有所差异,Jackson通常被认为是最快速的,而Gson则因其简单易用而受到欢迎。实际使用时,应根据项目需求和性能测试结果来选择。 总之,JSON解析JAR包是开发中不可或缺的工具,它为Java...

    JSON解析demo.zip

    在Android开发中,JSON解析是至关重要的,因为很多API接口返回的数据都是JSON格式。 在Android中,我们可以使用多种库来解析JSON数据,如`org.json`库(内置于Android SDK)、Gson库、Jackson库以及FastJson库等。...

    json解析包(完整)

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web服务之间的数据传输。它以文本形式存储和传递数据,结构清晰,...正确地使用JSON解析包,可以使得数据的序列化和反序列化变得简单高效。

    json解析工具类

    总之,JSON解析工具类是开发中不可或缺的部分,它简化了JSON与Java对象之间的转换,提高了代码的可读性和可维护性。了解并熟练使用这样的工具类,能够使你在处理JSON数据时更加得心应手。在选择具体的实现库时,需要...

    android之json解析

    本文将深入探讨Android中的三种JSON解析方法:Gson库、org.json库以及Jackson库。 首先,Gson库是由Google提供的一个Java库,它能将Java对象转换为JSON字符串,反之亦然。在Android中,使用Gson进行JSON解析非常...

    阿里json解析包1.2.9.jar

    阿里JSON解析包不仅仅包含核心的JSON解析功能,还可能包含一些额外的特性,例如支持JSONPath(类似XPath的JSON查询语言)、JSON Schema验证、以及对于Gson、Jackson等其他JSON库的兼容接口等。在使用过程中,开发者...

    Json解析辅助.zip

    本篇将围绕“Json解析辅助”这一主题,详细讲解JSON的基本概念、结构、解析方法以及相关辅助工具的应用。 1. JSON的基本结构: JSON基于JavaScript的一个子集,主要由对象和数组两种基本结构构成。对象是键值对的...

    Json,Gson数据生成小例

    3. **JSON解析与生成**: JSON数据可以被JavaScript原生解析,而在Java中,通常需要使用如Jackson、Gson、org.json等库进行解析和生成。 4. **JSON安全**: JSONP(JSON with Padding)是跨域数据交互的一种解决方案...

    java 解析 json文件 java 解析 json文件

    一、JSON解析库 1. Jackson:Jackson是Java中最流行的JSON处理库之一,提供了多种API用于序列化和反序列化JSON。使用Jackson的`com.fasterxml.jackson.databind.ObjectMapper`类可以轻松地将JSON字符串转换为Java...

    json解析+异步加载+listView

    JSON解析是Android应用开发中常见的任务,用于处理服务器返回的数据。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在这个项目中,我们主要关注...

Global site tag (gtag.js) - Google Analytics