一、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/zh-tw/n/148378.html
微信掃一掃
支付寶掃一掃