Java、Json转换方式之三:Fastjson
前面说Jackson是同等框架中最快的,现在要承认自己的错误了。强中更有强中手,这不,阿里巴巴整出来一个Fastjson,竟然比Jackson还快。Java序列化在性能上已经是糟糕透顶,看来以后的序列化还是使用json数据比较好。下面是jvm-serialize测试结果:
| 反序列化时间 | 大小 | 压缩后大小 | |
java序列化 | 8654 | 43787 | 889 | 541 |
hessian | 6725 | 10460 | 501 | 313 |
protobuf | 2964 | 1745 | 239 | 149 |
thrift | 3177 | 1949 | 349 | 197 |
avro | 3520 | 1948 | 221 | 133 |
json-lib | 45788 | 149741 | 485 | 263 |
jackson | 3052 | 4161 | 503 | 271 |
fastjson | 2595 | 1472 | 468 | 251 |
这个测试当然不是我做的,参看:http://wenshao.iteye.com/blog/1142031
Fastjson的文档非常全面,而且API友好,学习地址:http://code.alibabatech.com/wiki/pages/viewpage.action?pageId=2424946
这里也就不详细讲解其使用了,只是举个例子,看一下Fastjson的强大之处,作为抛砖引玉:
Person person = new Person();person.setAge(18);
person.setName("li");
person.setHappy("finery");
Map map = new HashMap();
map.put("age", 18);
map.put("name", "li");
List list = new ArrayList();
list.add(person);
list.add(map);
String json = JSON.toJSONString(list, SerializerFeature.UseSingleQuotes);
// json =
// [{'age':18,'happy':'finery','name':'li'},{'age':18,'name':'li'}]
list = JSON.parseArray(json, new Type[] { Person.class, Map.class });
for (Object object : list) {
System.out.println(object.toString());
}
// 输出:Person [name=li, age=18, happy=finery]
// {name=li, age=18}
使用简单,功能强大,性能卓越,是Fastjson的主要特点。
以上是 Java、Json转换方式之三:Fastjson 的全部内容, 来源链接: utcz.com/z/392491.html