は、私のPOJOです:2つのjacksonシリアライゼーションをどのように組み合わせて1つにするか?ここ
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"、 "値"
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;
}
}
ここに私の最初のシリアル化の方法です: 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":
ジャクソン版:ジャックソン(ジャーナリスト):「プロパティ」、「値」、「値」、「値」、 -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