com.alibaba.fastjson.JSONException: can not get javaBeanDeserializer. java.lang.String错误解决

使用fastjson中的toJavaObject方法,将JSONObject转化为实体类对象。

报错com.alibaba.fastjson.JSONException: can not get javaBeanDeserializer. java.lang.String

经排查,由于JSONObject中有key的value也是JSON格式的,而实体类中对应的字段是String格式,并且实体类由于是进行了数据库表结构映射,无法将字段类型更改为JSON格式,且由于特殊原因,无法对实体类进行多层子类嵌套关联,所以需要进行多一层转化操作。

实体类:

public class User {

    // 姓名
    String name;

    // 科目
    String subject;

}

转化过程:

JSONObject obj = new JSONObject();
obj.put("id","123");
obj.put("score","100");
JSONObject params = new JSONObject();
params.put("name","zhangsan");
params.put("subject",obj);
// 变更前
User user = params.toJavaObject(User.class);
// 变更后
User user = JSON.parseObject(JSON.toJSONString(params), User.class);
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值