我有以下 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 和名称,但对于对象映射,我无法设置数据。
所以我为 ObjectMap 创建了更多类,其中包含 programmeTitle 和 workingTitle 这工作正常但我不能将这些字段直接设置到我的 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是这样的
{"id":10606,
"name":"ProgrammerTitle",
"objectMap":{"programme-title":"TestProgramme","working-title":"TestProgramme"}
}
然后你可以像这样写你的对象映射器类..
public class Program{
public static class ObjectMap{
private String programme_title, working_title;
public String getprogramme_title() { return programme_title; }
public String getworking_title() { return working_title; }
public void setprogramme_title(String s) { programme_title= s; }
public void setworking_title(String s) { working_title= s; }
}
private ObjectMap objMap;
private String name;
public ObjectMap getobjectMap () { return objMap; }
public void setObjectMap (ObjectMap n) { objMap= n; }
private Long id;
public Long getId() {return id;}
public void setId(Long id) {this.id = id;}
private String name;
public String getName() {return name;}
public void setName(String name) {this.name = name;}
}
请引用这个check it
关于java - 使用jackson将Json对象转换为java对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19109719/