您的位置:首页 > Web前端 > JavaScript

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

2015-06-17 17:21 691 查看
我们常用的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。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: