一、ObjectNode的概念
ObjectNode是 Jackson 库中一个非常重要的类,它代表一个JSON对象。在Java中,我们可以使用ObjectNode来序列化JSON数据,反序列化JSON数据,以及在内存中修改JSON数据。
ObjectNode是JsonNode的实现类之一,JsonNode是Jackson库中用于处理JSON数据的核心类,它代表一个JSON节点,一个JSON节点可以是一个JSON对象、JSON数组、JSON字符串、JSON数值、JSON布尔或者是一个空值。
ObjectMapper objectMapper = new ObjectMapper();
ObjectNode objectNode = objectMapper.createObjectNode();
objectNode.put("name","Tom");
objectNode.put("age", 18);
JsonNode jsonNode = objectNode.get("name");
String name = jsonNode.asText();
System.out.println(name); // 打印结果: "Tom"
二、ObjectNode的创建
我们可以通过ObjectMapper的createObjectNode()方法来创建一个新的ObjectNode对象,也可以通过ObjectMapper的readTree()方法将一个JSON字符串解析成一个ObjectNode对象。
ObjectMapper objectMapper = new ObjectMapper();
// 创建空的ObjectNode对象
ObjectNode objectNode = objectMapper.createObjectNode();
// 在ObjectNode中添加字段
objectNode.put("name","Tom");
objectNode.put("age", 18);
// 从JSON字符串中解析出ObjectNode对象
String jsonString = "{\"name\":\"Tom\",\"age\":18}";
ObjectNode objectNodeFromJson = (ObjectNode)objectMapper.readTree(jsonString);
三、ObjectNode的操作
1、添加字段
我们可以使用put()方法向ObjectNode中添加字段。put()方法有多个变体,可以添加不同类型的值。
ObjectMapper objectMapper = new ObjectMapper();
ObjectNode objectNode = objectMapper.createObjectNode();
objectNode.put("name","Tom");
objectNode.put("age", 18);
objectNode.put("isStudent", true);
// 添加一个JSON对象
ObjectNode addressNode = objectMapper.createObjectNode();
addressNode.put("province", "Beijing");
addressNode.put("city", "Beijing");
objectNode.set("address", addressNode);
System.out.println(objectNode.toString());
// 打印结果: {"name":"Tom","age":18,"isStudent":true,"address":{"province":"Beijing","city":"Beijing"}}
2、获取字段
我们可以使用get()方法来获取ObjectNode中的字段。如果ObjectNode中不存在该字段,将返回null。
ObjectMapper objectMapper = new ObjectMapper();
String jsonString = "{\"name\":\"Tom\",\"age\":18}";
ObjectNode objectNode = (ObjectNode)objectMapper.readTree(jsonString);
JsonNode nameNode = objectNode.get("name");
String name = nameNode.asText();
JsonNode ageNode = objectNode.get("age");
int age = ageNode.asInt();
JsonNode notExistNode = objectNode.get("notExist");
System.out.println(notExistNode); // 打印结果: null
3、删除字段
我们可以使用remove()方法来删除ObjectNode中的字段。
ObjectMapper objectMapper = new ObjectMapper();
String jsonString = "{\"name\":\"Tom\",\"age\":18}";
ObjectNode objectNode = (ObjectNode)objectMapper.readTree(jsonString);
objectNode.remove("name");
System.out.println(objectNode.toString()); // 打印结果: {"age":18}
4、替换字段
我们可以使用put()方法来替换ObjectNode中的字段。如果ObjectNode中已经存在该字段,将会被覆盖。
ObjectMapper objectMapper = new ObjectMapper();
String jsonString = "{\"name\":\"Tom\",\"age\":18}";
ObjectNode objectNode = (ObjectNode)objectMapper.readTree(jsonString);
objectNode.put("name", "Jerry");
System.out.println(objectNode.toString()); // 打印结果: {"name":"Jerry","age":18}
五、总结
ObjectNode是Jackson库中一个非常重要的类,我们可以使用它来序列化JSON数据、反序列化JSON数据、以及在内存中修改JSON数据。在使用ObjectNode时,我们可以使用put()方法来添加字段、使用get()方法来获取字段、使用remove()方法来删除字段、使用put()方法来替换字段。
原创文章,作者:ZVCM,如若转载,请注明出处:https://www.506064.com/n/148378.html
微信扫一扫
支付宝扫一扫