【发布时间】:2013-10-01 06:49:25
【问题描述】:
我有以下 json 数据
{"id":10606,
"name":"ProgrammerTitle",
"objectMap":{"programme-title":"TestProgramme","working-title":"TestProgramme"}
}
我想将此数据设置为我的 pojo 对象
public class TestObject {
private Long id;
private String name;
@JsonProperty("programme-title")
private String programmeTitle;
@JsonProperty("working-title")
private String workingTitle;
}
在这里我可以在我的测试对象中设置 id 和 name 但对于对象映射我无法设置数据。
所以我为包含 programTitle 和 workingTitle 的 ObjectMap 制作了更多类,这工作正常,但我不能将此字段直接设置为我的 pojo 对象 这个可以设置吗?
我正在使用 Jackson Object Mapper 来转换 json 数据。
如果我在我的 pojo 中创建另一个 java 对象,它工作正常:
public class TestObject {
private Long id;
private String name;
@JsonProperty("objectMap")
private ObjectMap objectMap;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public ObjectMap getObjectMap() {
return objectMap;
}
public void setObjectMap(ObjectMap objectMap) {
this.objectMap = objectMap;
}
}
public class ObjectMap {
@JsonProperty("programme-title")
private String programmeTitle;
@JsonProperty("working-title")
private String workingTitle;
public String getProgrammeTitle() {
return programmeTitle;
}
public void setProgrammeTitle(String programmeTitle) {
this.programmeTitle = programmeTitle;
}
public String getWorkingTitle() {
return workingTitle;
}
public void setWorkingTitle(String workingTitle) {
this.workingTitle = workingTitle;
}
}
【问题讨论】:
-
您的 json 对象和 Java POJO 不匹配。
TestObject->programme-title与Obj->objectMap->programme-title不同 -
嗨,我已经检查了帖子,因为我得到了它,但我想使用该对象内部的 json 对象,这可能吗?
-
不可能使用注解来定义这种映射。但是您可以为这种类型实现您的自定义反序列化器,并在反序列化过程中使用它。见此链接:javacodegeeks.com/2013/08/…