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使用场景的主要内容,如果未能解决你的问题,请参考以下文章

FastJson的typeReference使用场景

JSON_常用类JSON与对象的互相转换TypeReference泛型遇到的坑

JSON_常用类JSON与对象的互相转换TypeReference泛型遇到的坑

关于 TypeReference 的解释

高级-02商品上架

javaJava中TypeReference用法说明