gpt4 book ai didi

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

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章使用ObjectMapper把Json转换为复杂的实体类由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

ObjectMapper Json转换为复杂的实体类

实体类

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/**
  *
  *
  * @author 李关钦
  * @version 2017年3月14日
  */
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方法省略
}
?
1
2
3
4
5
6
7
8
9
10
11
12
/**
  * 组内短信的消息内容
  *
  * @author 李关钦
  * @version 2017年2月24日
  */
public class SmsContent {
     private String content;
     private String part;
     private String receiveTime;
     //getter、setter方法省略
}

使用ObjectMapper转换json为实体类

?
1
2
3
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、如果一个类有带参构造函数,最好也为它提供一个无参构造函数,因为不知道什么地方可能就会用到 。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我.

原文链接:https://blog.csdn.net/u010663021/article/details/72638260 。

最后此篇关于使用ObjectMapper把Json转换为复杂的实体类的文章就讲到这里了,如果你想了解更多关于使用ObjectMapper把Json转换为复杂的实体类的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com