hutool工具类JSONUtil无法映射全是大写的单词,如何解决

背景

在解析第三方接口数据时,发现有的字段数据没有映射到对应的字段上,还有对于有的字段有空格或换行,也会一同存入数据库。

示例

实体类:

public class Goods {

private String id;

private String unit;

private Integer USER_NUM;

private Integer isValid;

private String isDelete;
//...

}

测试方法:

import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.nxg.util.dateutils.DateUtils;
import org.junit.Test;
import org.springframework.boot.test.context.SpringBootTest;

//省略…

@Test
public void test_json() {
String jtr = “{\n” +
““code”: 0,\n” +
““data”: “[{\“ID\”:\“12\”,\“UNIT\”:\“元\”,\“USER_NUM\”:100,\“IS_VALID\”:2,\“IS_DELETE\”:\“N\”},{\“ID\”:\“13\”,\“UNIT\”:\“次\”,\“USER_NUM\”:100,\“IS_VALID\”:2,\“IS_DELETE\”:\“N\”}]”,\n” +
““message”: “success”\n” +
“}”;

    JSONObject entries = JSONUtil.parseObj(jtr);
    JSONArray data = JSONUtil.parseArray(entries.get("data"));
    List<Goods> goodsList = new ArrayList<>();
    data.forEach(item -> {
        JSONObject entries1 = JSONUtil.parseObj(item);
        Goods bean = JSONUtil.toBean(entries1, Goods.class);
        goodsList.add(bean);
    });
    System.out.println(goodsList);
}

解决方法

方法1:

使用fastjson 解决 (推荐)

方法2:

取出值,再set到实体类中

如果字段太多,就很麻烦,还容易遗漏

方法3

暂时没有

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

所遇所思

你的鼓励将是我的原动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值