我正在尝试反序列化以下JSON:
{
"name": "myName",
"decoder": "myDecoder",
"id": 123,
"definition": {
"AND": [
"and-condition-1",
"and-condition-2",
{
"OR": [
"or-condition-1",
"or-condition-2"
]
}
]
}
}
我已反序列化文件:
ObjectMapper mapper = new ObjectMapper();
RuleDefinition ruleDefinition = mapper.readValue(new File(fileName), RuleDefinition.class);
在以下对象结构中:
规则efinition.java
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
@JsonInclude(JsonInclude.Include.NON_NULL)
public class RuleDefinition {
@JsonProperty("name")
private String name;
@JsonProperty("decoder")
private String decoder;
@JsonProperty("id")
private int id;
@JsonProperty("definition")
private Definition definition;
@JsonProperty("name")
public String getName() {
return name;
}
@JsonProperty("name")
public void setName(String name) {
this.name = name;
}
@JsonProperty("decoder")
public String getDecoder() {
return decoder;
}
@JsonProperty("decoder")
public void setDecoder(String decoder) {
this.decoder = decoder;
}
@JsonProperty("id")
public int getId() {
return id;
}
@JsonProperty("id")
public void setId(int id) {
this.id = id;
}
@JsonProperty("definition")
public Definition getDefinition() {
return definition;
}
@JsonProperty("definition")
public void setDefinition(Definition definition) {
this.definition = definition;
}
@Override
public String toString() {
return "RuleDefinition{" +
"name='" + name + '\'' +
", decoder='" + decoder + '\'' +
", id=" + id +
", definition=" + definition +
'}';
}
}
定义。爪哇
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Definition {
@JsonProperty("AND")
private List<AND> AND;
public List<AND> getAND() {
return AND;
}
public void setAND(List<AND> AND) {
this.AND = AND;
}
@Override
public String toString() {
return "Definition{" +
"AND=" + AND +
'}';
}
}
和JAVA
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;
@JsonInclude(JsonInclude.Include.NON_NULL)
public class AND {
@JsonProperty("OR")
private List<String> Or;
@JsonProperty("OR")
public List<String> getOR() {
return Or;
}
@JsonProperty("OR")
public void setOR(List<String> Or) {
this.Or = Or;
}
@Override
public String toString() {
return "AND{" +
"Or=" + Or +
'}';
}
}
我得到了以下错误
com.fasterxml.jackson.databind.JsonMappingException: Can not construct instance of com.model.AND: no String-argument constructor/factory method to deserialize from String value ('and-condition-1')
我看到问题是因为'and-condition-1'只是一个值,我如何反序列化这些,我想知道我应该写一个自定义反序列化器(或者)有什么解决方法吗?
我认为问题在于,在JSON中,AND对象既是字符串又是对象。您应该为它创建一个JsonDeserializer
。
在此输入链接描述在此输入链接描述
问题内容: 使用包中的类时遇到了json解析问题,而我得到的错误是: 发生此问题的Web应用程序是使用AngularJS前端的Spring MVC应用程序,但我可以使用更小的所有Java程序来复制该问题。这是我的豆子: Shipment.java Activity.java ActivityLocation.java 地址.java 这是我可以正确映射json的代码: 调整var中的数据时,遇到了
我使用RestTemplate。exchange在我的Spring Boot应用程序中获得以下响应: 广告商。java: 广告商java: 但我有以下例外: 我不明白为什么id“1057343”不能反序列化。 你能帮忙吗?提前谢谢
我正在尝试使用RestTemplate(Spring Boot)读取来自rest服务的响应: 但当响应中存在错误数组时: 我不明白为什么没有构造器/工厂方法从字符串值反序列化。 谢谢
我是Spring DataJPA+REST项目的新手,我正在尝试使用OneToOne单向关系执行从reference EmployerType添加新的或编辑雇主。当我试图添加或编辑数据时,我会得到以下错误: 下面是关于这些课程的信息。 Rest控制器
我正在尝试反序列化以下JSON 在以下自定义反序列化程序的帮助下 进入以下对象结构 我得到以下错误 通用域名格式。fasterxml。杰克逊。数据绑定。exc.MismatchedInputException:无法构造OrderId的实例(尽管至少存在一个创建者):没有从字符串值反序列化的字符串参数构造函数/工厂方法({“type”:“TAKEAWAY”,“data”:{“OrderId”:“AW
当我在Spring Data REST应用程序中使用Lombok来定义复杂类型时,例如: 使用Spring Data REST控制器,例如: 我遇到了一个可怕的错误: 来自Spring Data REST使用Jackson和Book POST,例如: 当Jackson试图解析本地URI时,会发生反序列化错误,该URI应解析为单个唯一的人。如果我删除我的RepositoryRestControlle