json在线解析:https://www.sojson.com/
json在线解析工具
1.Google的Gson(结构描述摘自http://www.cnblogs.com/kunpengit/p/4001680.html)
Gson是现在功用最全的Json解析神器,Gson最初是为因应Google公司内部需求而由Google自行研发而来,
但自从在2008年五月揭露发布第一版后已被许多公司或用户运用。
Gson的运用主要为toJson与fromJson两个转化函数,无依靠,不需求例外额外的jar,能够直接跑在JDK上。
而在运用这种目标转化之前需先创建好目标的类型以及其成员才能成功的将JSON字符串成功转化成相对应的目标。
类里面只要有get和set办法,Gson完全可以将杂乱类型的json到bean或bean到json的转化,是JSON解析的神器。
Gson在功用上面无可挑剔,可是性能上面比FastJson有所差距。
2.阿里巴巴的FastJson
Fastjson是一个Java语言编写的高性能的JSON处理器,由阿里巴巴公司开发。
无依靠,不需求例外额外的jar,能够直接跑在JDK上。
FastJson在杂乱类型的Bean转化Json上会呈现一些问题,可能会呈现引证的类型,导致Json转化犯错,需求制定引证。
FastJson选用独创的算法,将parse的速度提升到极致,超越所有json库。
Gson、FastJson到底哪一个功率更高,速度更快?(功率比较摘自http://blog.csdn.net/zml_2015/article/details/52165317)
来个单元测试:
循环50次再求平均值:
@org.junit.Test
publicvoidTestSpeed()throwsException{
Listfoods=foodDao.selectAll(Foods.class);
System.out.println(“————-gson———–“);
longgsonStart=System.currentTimeMillis();
gsonC(foods);//用Gson进行拆包和解析并循环操作50次
longgsonEnd=System.currentTimeMillis();
System.out.println(“gsonGaps:”+(gsonEnd-gsonStart)/50);
System.out.println(“————-gson———–“);
System.out.println(“————-FastJson———–“);
longfastStart=System.currentTimeMillis();
fastJsonC(foods);//用FastJson进行拆包和解析并循环操作50次
longfastEnd=System.currentTimeMillis();
System.out.println(“gsonGaps:”+(fastEnd-fastStart)/50);
System.out.println(“————-FastJson———–“);
System.out.println(“————-JSON———–“);
longjsonStart=System.currentTimeMillis();
jsonC(foods);//用org.json进行拆包和解析并循环操作50次
longjsonEnd=System.currentTimeMillis();
System.out.println(“gsonGaps:”+(jsonEnd-jsonStart)/50);
System.out.println(“————-JSON———–“);
}
调用的办法有必要是synchronized同步的,即运行完该办法后才执行下面的代码
privatesynchronizedvoidjsonC(Listfoods)throwsException{
for(intj=0;j<50;j++){
StringjsonString=JsonTools.createJsonString(“json”,foods);
JSONObjectobject=newJSONObject(jsonString);
JSONArrayarray=object.getJSONArray(“json”);
Listlist2=newArrayList();
for(inti=0;i<array.length();i++){
JSONObjectfoodObject=(JSONObject)array.get(i);
Foodsfoods2=newFoods(foodObject.getInt(“id”),
foodObject.getString(“cookclass”),
foodObject.getString(“name”),
foodObject.getString(“description”),
foodObject.getString(“food”),
foodObject.getString(“img”),
foodObject.getString(“images”),
foodObject.getString(“keywords”),
foodObject.getString(“message”),
foodObject.getString(“url”));
list2.add(foods2);
}
Strings3=list2.toString();
}
}
privatesynchronizedvoidfastJsonC(Listfoods){
for(inti=0;i<50;i++){
StringfastString=FastJsonTools.createJsonString(foods);
Strings2=FastJsonTools.createJsonToListBean(fastString,
Foods.class).toString();
}
}
privatesynchronizedvoidgsonC(Listfoods){
for(inti=0;i<50;i++){
StringgsonString=GsonTools.createJsonString(foods);
Strings1=GsonTools.StringTolist(gsonString,Foods[].class)
.toString();
}
}
然后贴一下解析1万条数据、2万条数据和100条数据各个类库所用的的平均时刻(这个时刻不包括查询数据库所用的时刻)
1.1万
2.2万
3.100条
经过这次测试之后,确实验证了阿里巴巴的FastJson相对来说是挺快的。由于fastjson在杂乱类型的Bean转化Json上会呈现一些问题,可能会呈现引证的类型,导致Json转化犯错,所以我决议仍是fastjson和gson并用,
不要求功率的话就用gson,要求高功率的话就用fastjson。