JSON String类型转换时遇到的问题--ClassCastException

本文介绍如何正确地将JSON字符串转换为List<LinkedHashMap<String,String>>形式,并保持键值对的插入顺序不变。通过使用TypeReference确保转换过程中能够维护数据的原始顺序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述:

在做String转换JSON时,我需要转换成List<Map<String, String>> 的形式:

List<Map<String, String>> list = JSON.parseObject(detail.getResult(), List.class);

这样是可以成功的,但是我取到值时发现不对,内容变得顺序没有对应了。我网上查了一下,发现HashMap在取值时是无序的,并不是按存入的顺序来取,于是我将map改为LinkedHashMap,json转换写成如下方式:

List<LinkedHashMap<String, String>> list = JSON.parseObject(detail.getResult(), List.class);

触发事件报错

查阅网上资料发现,使用JSON工具转换时,需要让List/Map识别自己的Object

引用到TypeReference写法

List<LinkedHashMap<String, String>> list = JSON.parseObject(detail.getResult(), new TypeReference<List<LinkedHashMap<String, String>>>() {});

问题解决


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值