这是我的POJO的:如何将这2个jackson序列化结合到一个?
public static class MyPojo {
private int rootId;
private String command;
private Double value;
// I want this property to be shown at root level
@JsonIgnore
public int getRootId() {
return rootId;
}
public void setRootId(int rootId) {
this.rootId = rootId;
}
public String getCommand() {
return command;
}
public void setCommand(String command) {
this.command = command;
}
public Double getValue() {
return value;
}
public void setValue(Double value) {
this.value = value;
}
}
这是我的第一序列化方法:
public static void writeJsonId6() throws JsonProcessingException {
MyPojo pojo = new MyPojo();
pojo.setRootId(6);
pojo.setCommand("property.batch");
pojo.setValue(129.00);
ObjectMapper mapper = new ObjectMapper();
mapper.configure(SerializationFeature.WRAP_ROOT_VALUE, true);
String json = mapper.writer().withRootName(Integer.toString(pojo.getRootId())).writeValueAsString(pojo);
System.out.println(json);
}
JSON输出:{ “6”:{ “命令”: “property.batch”, “值”: 129.0}}
这里是我的第二个序列化方法:
public static void writeJsonId7() throws JsonProcessingException {
MyPojo pojo = new MyPojo();
pojo.setRootId(7);
pojo.setCommand("property.batch");
pojo.setValue(88.00);
ObjectMapper mapper = new ObjectMapper();
mapper.configure(SerializationFeature.WRAP_ROOT_VALUE, true);
String json = mapper.writer().withRootName(Integer.toString(pojo.getRootId())).writeValueAsString(pojo);
System.out.println(json);
}
JSON输出:{ “7”:{ “命令”: “property.batch”, “值”:88.0}}
这是我需要:
{ “6”: {“command”:“property.batch”,“value”:129.0},“7”:{“command”:“property.batch”,“value”:88.0}}
Jackson lib版本:jackson -core:2.0.0,jackson-databind:2.9.0
'HashMap map = new HashMap(); map.put(pojo.getRootId(),pojo); map.put(pojo2.getRootId(),pojo2); String json = new ObjectMapper()。writer()。writeValueAsString(map);' – varren