JsonNode API 文档
概述
JsonNode
是 Jackson 数据绑定库中的一个类,用于表示 JSON 数据的节点。它是 com.fasterxml.jackson.databind.JsonNode
包的一部分,提供了处理 JSON 数据的灵活接口。
主要特性
- 支持多种类型的 JSON 数据(对象、数组、字符串、数字、布尔值和 null)。
- 支持树状结构的动态访问和遍历。
- 提供类型安全的方法访问 JSON 数据。
创建 JsonNode
从 JSON 字符串创建
1
| JsonNode jsonNode = objectMapper.readTree("{\"key\":\"value\"}");
|
从 Java 对象创建
1
| JsonNode jsonNode = objectMapper.valueToTree(yourObject);
|
主要方法
节点类型判断
boolean isObject()
检查当前节点是否为 JSON 对象。
boolean isArray()
检查当前节点是否为 JSON 数组。
boolean isValueNode()
检查当前节点是否为值节点(如字符串、数字、布尔值)。
获取子节点
读取值
遍历节点
修改节点
ObjectNode put(String fieldName, String value)
添加或更新 JSON 对象的属性。
ArrayNode add(String value)
向 JSON 数组添加元素。
例子
创建和访问 JsonNode
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper;
public class JsonNodeExample { public static void main(String[] args) throws Exception { String jsonString = "{\"name\":\"Alice\",\"age\":30}"; ObjectMapper objectMapper = new ObjectMapper();
JsonNode rootNode = objectMapper.readTree(jsonString);
String name = rootNode.get("name").asText(); int age = rootNode.get("age").asInt();
System.out.println("Name: " + name); System.out.println("Age: " + age); } }
|