使用Jackson,我正在创建一个像这样的Json对象:
{"A": {
"B": {
"C": {
"D": 1
}
}
}}
使用下一个代码
ObjectNode rootNode = JsonNodeFactory.instance.objectNode();
ObjectNode aNode = JsonNodeFactory.instance.objectNode();
ObjectNode bNode = JsonNodeFactory.instance.objectNode();
ObjectNode cNode = JsonNodeFactory.instance.objectNode();
cNode.put("D", 1);
bNode.set("C", cNode);
aNode.set("B", bNode);
rootNode.set("A", aNode);
有没有更简单的方法来创建它?类似的东西:
ObjectNode rootNode = JsonNodeFactory.instance.objectNode();
rootNode.set("A/B/C/D",1);
同样阅读类似的对象有一种简单的方法来获得" D"的价值?
答案 0 :(得分:4)
是的,您可以使用以下方法创建嵌套结构:
ObjectNode root = JsonNodeFactory.instance.objectNode();
root.with("A").with("B").with("C").put("D", 1);
答案 1 :(得分:1)
是的,你可以这样做:
import java.io.IOException;
import org.codehaus.jackson.JsonNode;
import org.codehaus.jackson.JsonParseException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;
public class TestJackson {
public static void main(String[] args) throws JsonParseException, JsonMappingException, IOException {
ObjectMapper mapper = new ObjectMapper();
JsonNode node = mapper.readValue("{\"A\": {\"B\": { \"C\": {\"D\": 1 } }}}", JsonNode.class);
}
}