嗨,我有一个Json,如下:
Bill
现在我的要求是将A,B,C转换为camelCase表示法(根据需要),我使用@JsonProperty以及相应POJO类的getter和setter方法。
最后,我的输出如下:
A {
B {
C [{
x1:x2,
y1:y2
}]
}
}
现在我想在b和c之间添加一个新的空对象,如d。
请你帮我添加一个新的空JSON对象。
所需的输出应该是这样的:
a {
b {
c [{
x1:x2,
y1:y2
}]
}
}
杰森:
a {
b {
d {
c [{
x1:x2,
y1:y2
}]
}
}
}
我需要这样的东西:
"Skills" : {
"SkillSet" : [
{
"Skill" : "Management"
},
{
"Skill" : "IT"
},
]
}
我完成了转换camelCase但我需要插入新对象" mainSkills"。
答案 0 :(得分:1)
以下内容将为您提供预期的输出:
String json = "{\n" +
" \"skills\": {\n" +
" \"skillSet\": [\n" +
" {\n" +
" \"skill\": \"Management\"\n" +
" },\n" +
" {\n" +
" \"skill\": \"IT\"\n" +
" }\n" +
" ]\n" +
" }\n" +
"}";
// Create ObjectMapper instance to parse the JSON
ObjectMapper mapper = new ObjectMapper();
// Parse the JSON into the Jackson tree model
JsonNode tree = mapper.readTree(json);
// Store a reference to the "skills" node
JsonNode skills = tree.get("skills");
// Store a reference to the "skillsSet" node
JsonNode skillSet = skills.get("skillSet");
// Remove the "skillsSet" node from the tree
((ObjectNode) skills).remove("skillSet");
// Create the "skillSet" node under "mainSkills"
// and sets it under the "skills" node
((ObjectNode) skills).set("mainSkills",
mapper.createObjectNode().set("skillSet", skillSet));
// Write the tree as a JSON string using the default pretty printer
String newJson = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(tree);
如果您不想操纵上面演示的JSON,请按照JB Nizet approach。