几种Json工具包的解析速度对比

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介: 几种Json工具包的解析速度对比

我们常用的json工具有Google的Gson,JackJson,阿里的fastjson,这里我们加入一个IBM的解析工具。看代码

String content = resultSearch.getResponseContent();
    long t1=System.currentTimeMillis();
    net.sf.json.JSONObject json = net.sf.json.JSONObject.fromObject(content);
    if (json.get("searchResults") != null) {
      net.sf.json.JSONArray obj = net.sf.json.JSONArray.fromObject(json.get("searchResults") + "");
      for (int i = 0; i < obj.size(); i++) {
        //
      }
      System.out.println("obj.size="+obj.size());
    }
    long t2=System.currentTimeMillis();
    System.out.println(t2-t1);
    
    long t3=System.currentTimeMillis();
    com.alibaba.fastjson.JSONObject responseJson = com.alibaba.fastjson.JSONObject.parseObject(content);
    if (json.get("searchResults") != null) {
      com.alibaba.fastjson.JSONArray obj = com.alibaba.fastjson.JSONArray.parseArray(responseJson.get("searchResults") + "");
      for (int i = 0; i < obj.size(); i++) {
        //
      }
      System.out.println("obj.size="+obj.size());
    }
    long t4=System.currentTimeMillis();
    System.out.println(t4-t3);
    
    long t5=System.currentTimeMillis();
    com.ibm.json.java.JSONObject jsn = com.ibm.json.java.JSONObject.parse(content);
    if (json.get("searchResults") != null) {
      com.ibm.json.java.JSONArray obj = com.ibm.json.java.JSONArray.parse(jsn.get("searchResults") + "");
      for (int i = 0; i < obj.size(); i++) {
        //
      }
      System.out.println("obj.size="+obj.size());
    }
    long t6=System.currentTimeMillis();
    System.out.println(t6-t5);
    
    long t7=System.currentTimeMillis();
    Gson gson = new Gson();
    JsonElement element=gson.toJsonTree(content);
    com.google.gson.JsonObject jsonObject= element.getAsJsonObject();
    if (jsonObject.get("searchResults") != null) {
      com.google.gson.JsonArray obj = jsonObject.get("searchResults").getAsJsonArray();
      for (int i = 0; i < obj.size(); i++) {
        //
      }
      System.out.println("obj.size="+obj.size());
    }
    long t8=System.currentTimeMillis();
    System.out.println(t8-t7);


这里的运行结果是:

obj.size=5679

13872

obj.size=5679

381

obj.size=5679

298

而Gson则没有解析成功,抛了个异常,可能写法有问题。

这样来看,阿里的fastjson及IBM的json解析工具在速度上远远快与JackJson。


相关文章
|
2月前
|
存储 JSON API
淘系API接口(解析返回的json数据)商品详情数据解析助力开发者
——在成长的路上,我们都是同行者。这篇关于商品详情API接口的文章,希望能帮助到您。期待与您继续分享更多API接口的知识,请记得关注Anzexi58哦! 淘宝API接口(如淘宝开放平台提供的API)允许开发者获取淘宝商品的各种信息,包括商品详情。然而,需要注意的是,直接访问淘宝的商品数据API通常需要商家身份或开发者权限,并且需要遵循淘宝的API使用协议。
淘系API接口(解析返回的json数据)商品详情数据解析助力开发者
|
12天前
|
JSON API 数据格式
requests库中json参数与data参数使用方法的深入解析
选择 `data`或 `json`取决于你的具体需求,以及服务器端期望接收的数据格式。
51 2
|
19天前
|
JSON 前端开发 JavaScript
解析JSON文件
解析JSON文件
51 9
|
2月前
|
JSON Java API
在 Java 中解析 JSON ArrayList 的详细指南
【8月更文挑战第23天】
31 1
|
24天前
|
存储 JSON API
Python编程:解析HTTP请求返回的JSON数据
使用Python处理HTTP请求和解析JSON数据既直接又高效。`requests`库的简洁性和强大功能使得发送请求、接收和解析响应变得异常简单。以上步骤和示例提供了一个基础的框架,可以根据你的具体需求进行调整和扩展。通过合适的异常处理,你的代码将更加健壮和可靠,为用户提供更加流畅的体验。
58 0
|
2月前
|
JSON API 数据格式
基于服务器响应的实时天气数据进行JSON解析的详细代码及其框架
【8月更文挑战第25天】这段资料介绍了一个使用Python从服务器获取实时天气数据并解析JSON格式数据的基本框架。主要分为三个部分:一是安装必要的`requests`库以发起HTTP请求获取数据,同时利用Python内置的`json`库处理JSON数据;二是提供了具体的代码实现,包括获取天气数据的`get_weather_data`函数和解析数据的`parse_weather_data`函数;三是对代码逻辑进行了详细说明,包括如何通过API获取数据以及如何解析这些数据来获取温度和天气描述等信息。用户需要根据实际使用的天气API调整代码中的API地址、参数和字段名称。
|
2月前
|
JSON 数据格式 索引
【Azure Developer】Azure Logic App 示例: 解析 Request Body 的 JSON 的表达式? triggerBody()?
【Azure Developer】Azure Logic App 示例: 解析 Request Body 的 JSON 的表达式? triggerBody()?
|
7天前
|
XML 存储 JSON
Twaver-HTML5基础学习(19)数据容器(2)_数据序列化_XML、Json
本文介绍了Twaver HTML5中的数据序列化,包括XML和JSON格式的序列化与反序列化方法。文章通过示例代码展示了如何将DataBox中的数据序列化为XML和JSON字符串,以及如何从这些字符串中反序列化数据,重建DataBox中的对象。此外,还提到了用户自定义属性的序列化注册方法。
23 1
|
2月前
|
JSON 前端开发 JavaScript
|
5天前
|
存储 JSON Go
在Gin框架中优雅地处理HTTP请求体中的JSON数据
在Gin框架中优雅地处理HTTP请求体中的JSON数据

推荐镜像

更多
下一篇
无影云桌面