【各种**问题系列】FastJSON 泛型对象解析

2023-12-20 16:57:36

📌 问题背景:?

????????解析 JSON,并将其转换为对应的数据结构。转换普通对象时,可以直接使用 Class 实例进行直接转换:

 A a = JSON.parseObject(str, A.class);

? ? ? ? 但是,如果是 类似 Map这里集合(带有泛型)对象,直接转换则格式可能并不正确:

// 如果需要Map<String, String> 结果不是想要的格式
Map a = JSON.parseObject(str, Map.class)

📌 解决方案:

? ? ? ? 使用?TypeReference 进行解析:

// 可以直接使用
HashMap<String, String> map = JSONObject.parseObject(str, new TypeReference<HashMap<String, String>>(){});
// 其他类型对象
EnjoyResponseDTO<EnjoyPageResponseDataDTO<Long>> result = JSONObject.parseObject(str, new TypeReference<EnjoyResponseDTO<EnjoyPageResponseDataDTO<Long>>>(){});
// 或者type的构造中使用参数
EnjoyResponseDTO<EnjoyPageResponseDataDTO<T>> result = JSONObject.parseObject(str, new TypeReference<EnjoyResponseDTO<EnjoyPageResponseDataDTO<T>>>(Long.class){});

? ? ? ? 在?TypeReference 的泛型中传入需要反序列化的泛型对象即可。

文章来源:https://blog.csdn.net/weixin_52058417/article/details/135107750
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。