一、来源
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>(){});