Java处理JSON数据有三个比较流行的类库FastJson、Jackson和Gson。Fastjson是阿里做的
开源工具包,Jackson是Spring框架默认使用的工具包,我们经常用到的是FastJson和Jackson。
Jackson
//对象转Json
ObjectMapper objectMapper = new ObjectMapper();
Person person = new Person();
person.setName("Tom");
person.setAge(40);
String jsonString = objectMapper.writeValueAsString(person);
//Json转对象
Person person = objectMapper.readValue(jsonString, Person.class);
//Json转复杂集合(不推荐使用,存在转的时候获取不到值)
List<Person> list = objectMapper.readValue(jsonString, new TypeReference<List<Person>>(){});
FastJson
//JSON 转 POJO
POJO pojo = JSONObject.parseObject(jsonString, POJO.class);
//POJO 转 JSON
String pojo = JSONObject.toJSONString(POJO);
// List<T> 转 json
String jsons = JSON.toJSONString(List<POJO> ts);
//json 转 List<T>
List<POJO> ts = (List<POJO>) JSONArray.parseArray(jsonString, POJO.clazz);
总结:
在少量数据时,jackson性能比fastson要好,
当数据量越来越大时,fastson的性能要好于jackson;
序列化时选取何种json库,可根据数据多少进行选择。
同时通过复杂数据进行反序列化时,推荐fastjson,性能更好
综合来看,Jackson性能更好,是更值得推荐使用的类库