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()
    检查当前节点是否为值节点(如字符串、数字、布尔值)。

获取子节点

  • JsonNode get(String fieldName)
    获取指定字段名的子节点。如果节点不存在,返回 null。

  • JsonNode path(String fieldName)
    获取指定字段名的子节点。如果节点不存在,返回一个空的 JsonNode

读取值

  • String asText()
    将当前节点的值转换为字符串。

  • int asInt()
    将当前节点的值转换为整数。

  • boolean asBoolean()
    将当前节点的值转换为布尔值。

遍历节点

  • Iterator<JsonNode> elements()
    获取当前节点下所有元素的迭代器(仅在数组或对象节点中可用)。

  • int size()
    获取当前节点包含的子节点数量(仅在数组或对象节点中可用)。

修改节点

  • 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
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);
}
}