返回顶部
首页 > 资讯 > 后端开发 > Python >使用ObjectMapper把Json转换为复杂的实体类
  • 252
分享到

使用ObjectMapper把Json转换为复杂的实体类

2024-04-02 19:04:59 252人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

ObjectMapper JSON转换为复杂的实体类 实体类 主实体类* GetRigSmsResult* 里面的* smsContentList 是一个list类型的的 SmsCo

ObjectMapper JSON转换为复杂的实体类

实体类

主实体类* GetRigSmsResult* 里面的* smsContentList 是一个list类型的的 SmsContentSmsContent *集合



public class GetRigSmsResult {
    private String datacoding;
    private String messageParts;
    private int pushFlag;
    private String receivePhoneNumber;
    private String receiveTime;
    private String sendPhoneNumber;
    private String sendTime;
    private String shortMessageId;
    private int state;
    @jsonProperty(value = "smsContent")
    private String smsContent;
    // @JsonIgnore
    private List<SmsContent> smsContentList;
    //getter、setter方法省略
}


public class SmsContent {
    private String content;
    private String part;
    private String receiveTime;
    //getter、setter方法省略
}

使用ObjectMapper转换json为实体类


ObjectMapper mapper = new ObjectMapper();
String reqBody = mapper.writeValueAsString(param);
List<GetRigSmsResult> resultList =  mapper.readValue(respBody, new TypeReference<List<GetRigSmsResult>>() {  });

转换的时候使用new TypeReference<List<GetRigSmsResult>>() { }可以把含有list的嵌套对象也给成功转换。

objectmapper 嵌套json转对象报错

原因

是因为实体类对象没有加无参构造器

1、对于没有构造函数的java类,编译器会为其提供一个默认的无参构造函数;

2、如果显示的为类提供了构造函数,编译器就不会再给提供默认构造函数了;

3、ObjectMapper将JSON字符串转换为java对象的时候,需要调用类的无参构造函数(分配相关地址?)

4、如果一个类有带参构造函数,最好也为它提供一个无参构造函数,因为不知道什么地方可能就会用到

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: 使用ObjectMapper把Json转换为复杂的实体类

本文链接: https://lsjlt.com/news/132799.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作