Gson和FastJson

一、来源

  Gson出自Google,不需要例外额外的jar,能够直接跑在JDK上,主要为toJson与fromJson两个转换函数,在功能上面无可挑剔,但是性能上面比FastJson有所差距。

  FastJson出自阿里巴巴,无依赖,不需要例外额外的jar,能够直接跑在JDK上,在复杂类型的Bean转换Json上会出现一些问题,可能会出现引用的类型,导致Json转换出错,需要制定引用,但是解析速度极快,超越所有的类库。

二、简单用法

  2.1、Gson

//maven依赖
<dependency>
  <groupId>com.google.code.gson</groupId>
  <artifactId>gson</artifactId>
  <version>2.7</version>
</dependency>

//json与普通类型的bean之间的转换

//bean转换json
Gson gson = new Gson();
String json = gson.toJson(obj);//obj是对象

//json转换bean
Gson gson = new Gson();
String json = "{\"id\":\"1\",\"name\":\"geenk\"}";
Company c = gson.fromJson(json, Company.class);

//json与复杂类型的bean之间的转换,比如List,Set,需要使用TypeToken
Gson gson = new Gson();
String json = "[{\"id\":\"1\",\"name\":\"geenk\"},{\"id\":\"2\",\"name\":\"alibaba\"}]";

//json转换成List
List list = gson.fromJson(json,new TypeToken<LIST>() {}.getType());

//json转换成Set
Set set = gson.fromJson(json,new TypeToken<SET>() {}.getType());

  2.2、FastJson

//maven依赖
<dependency>
  <groupId>com.alibaba</groupId>
  <artifactId>fastjson</artifactId>
  <version>1.2.7</version>
</dependency>

//json与普通类型的bean之间的转换

//bean转换json

//格式化json
JSON.toJSONString(obj,true);//obj是对象

//非格式化的json
JSON.toJSONString(obj,false);//obj是对象


//json转换bean
String json = "{\"id\":\"2\",\"name\":\"geenk\"}";
Company company = JSON.parseObject(json, Company.class);

//添加
company.put(key,value);
//删除
company.put(key);
//判断包含
company.contains(key);
//获取
company.get(key);


//json与复杂类型的bean之间的转换,比如List,Set,需要用到TypeReference

String json = "[{\"id\":\"1\",\"name\":\"geenk\"},{\"id\":\"2\",\"name\":\"alibaba\"}]";

//将json转换成List
List list = JSON.parseObject(json,new TypeReference<ARRAYLIST>(){});

//将json转换成Set
Set set = JSON.parseObject(json,new TypeReference<HASHSET>(){});

 

posted @ 2017-04-17 14:15  npe0  阅读(852)  评论(0)    收藏  举报