[这不是从JSON字符串中不能实例化类型值的重复;没有单字符串构造函数/工厂方法:这是一个简单得多的POJO和JSON。在我的情况下,解决方案也不同。]
我要从中解析和创建POJO的JSON:
{
"test_mode": true,
"balance": 1005,
"batch_id": 99,
"cost": 1,
"num_messages": 1,
"message": {
"num_parts": 1,
"sender": "EXAMPL",
"content": "Some text"
},
"receipt_url": "",
"custom": "",
"messages": [{
"id": 1,
"recipient": 911234567890
}],
"status": "success"
}
如果响应碰巧是一个错误,它看起来像:
{
"errors": [{
"code": 80,
"message": "Invalid template"
}],
"status": "failure"
}
以下是我定义的POJO:
@Data
@Accessors(chain = true)
public class SmsResponse {
@JsonProperty(value = "test_mode")
private boolean testMode;
private int balance;
@JsonProperty(value = "batch_id")
private int batchId;
private int cost;
@JsonProperty(value = "num_messages")
private int numMessages;
private Message message;
@JsonProperty(value = "receipt_url")
private String receiptUrl;
private String custom;
private List<SentMessage> messages;
private String status;
private List<Error> errors;
@Data
@Accessors(chain = true)
public static class Message {
@JsonProperty(value = "num_parts")
private int numParts;
private String sender;
private String content;
}
@Data
@Accessors(chain = true)
public static class SentMessage {
private int id;
private long recipient;
}
@Data
@Accessors(chain = true)
public static class Error {
private int code;
private String message;
}
}
注释@Data
(告诉Lombok自动为类生成getter、setter、toString()
和hashCode()
方法)和@Accessors
(告诉Lombok以可以链接的方式生成setter)来自Lombok项目。
似乎是一个简单的设置,但每次运行时:
objectMapper.convertValue(response, SmsResponse.class);
我得到错误消息:
Can not instantiate value of type [simple type, class com.example.json.SmsResponse]
from String value ... ; no single-String constructor/factory method
为什么我需要一个用于SmsResponse
的单个字符串构造函数,如果需要,我在其中接受哪个字符串?
要使用ObjectMapper解析和映射JSON字符串,您需要使用readValue方法:
objectMapper.readValue(response, SmsResponse.class);
问题内容: 使用包中的类时遇到了json解析问题,而我得到的错误是: 发生此问题的Web应用程序是使用AngularJS前端的Spring MVC应用程序,但我可以使用更小的所有Java程序来复制该问题。这是我的豆子: Shipment.java Activity.java ActivityLocation.java 地址.java 这是我可以正确映射json的代码: 调整var中的数据时,遇到了
我使用RestTemplate。exchange在我的Spring Boot应用程序中获得以下响应: 广告商。java: 广告商java: 但我有以下例外: 我不明白为什么id“1057343”不能反序列化。 你能帮忙吗?提前谢谢
当我在Spring Data REST应用程序中使用Lombok来定义复杂类型时,例如: 使用Spring Data REST控制器,例如: 我遇到了一个可怕的错误: 来自Spring Data REST使用Jackson和Book POST,例如: 当Jackson试图解析本地URI时,会发生反序列化错误,该URI应解析为单个唯一的人。如果我删除我的RepositoryRestControlle
我正在尝试反序列化以下JSON: 我已反序列化文件: 在以下对象结构中: 规则efinition.java 定义。爪哇 和JAVA 我得到了以下错误 我看到问题是因为'and-condition-1'只是一个值,我如何反序列化这些,我想知道我应该写一个自定义反序列化器(或者)有什么解决方法吗?
我正在尝试使用RestTemplate(Spring Boot)读取来自rest服务的响应: 但当响应中存在错误数组时: 我不明白为什么没有构造器/工厂方法从字符串值反序列化。 谢谢
我是Spring DataJPA+REST项目的新手,我正在尝试使用OneToOne单向关系执行从reference EmployerType添加新的或编辑雇主。当我试图添加或编辑数据时,我会得到以下错误: 下面是关于这些课程的信息。 Rest控制器