FastJson的typeReference使用场景
Posted issue是fw
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FastJson的typeReference使用场景相关的知识,希望对你有一定的参考价值。
当我们需要反序列化一个 m a p map map时
public static void main(String[] args)
Map<String, Person> map = new HashMap<>(16);
map.put("one", new Person("zhangsan"));
map.put("two", new Person("lisi"));
String jsonStr = JSON.toJSONString(map);
byte[] bytes = jsonStr.getBytes();
String json = new String(bytes);
Map<String, Person> res = JSON.parseObject(json, Map.class);
System.out.println(res.get("one"));
System.out.println(res.get("one").getName());
这样写会报错,因为在JSON.parseObject
只传入了Map.class
,并不会解析为对象Person
的形式
这个时候可以使用typeReference
public static void main(String[] args)
Map<String, Person> map = new HashMap<>(16);
map.put("one", new Person("zhangsan"));
map.put("two", new Person("lisi"));
String jsonStr = JSON.toJSONString(map);
byte[] bytes = jsonStr.getBytes();
String json = new String(bytes);
Map<String, Person> res = JSON.parseObject(json, new TypeReference<Map<String, Person>>());
System.out.println(res.get("one"));
System.out.println(res.get("one").getName());
以上是关于FastJson的typeReference使用场景的主要内容,如果未能解决你的问题,请参考以下文章
JSON_常用类JSON与对象的互相转换TypeReference泛型遇到的坑