Jackson 是一款高性能的 Java JSON 处理库,广泛应用于 Java 对象的序列化(转为JSON)与反序列化(JSON转为对象)。作为 Spring MVC 默认的JSON解析器,其核心优势包括高性能、灵活性和丰富的功能支持。
Jackson 库中 ObjectNode 是操作 JSON 对象的核心类,可实现动态的增删改查操作。ObjectNode 对象节点是 JsonNode 中比较常用的一个子类。如果以 “键 : 值” 结果保存的 JSON 数据中的某个节点也是一个以 “键 : 值” 结构保存的 JSON 数据,那么这个节点就用 ObjectNode 表示。
ObjectNode 类的常用 API 及其说明:
返回值 | 方法 | 说明 |
---|---|---|
ObjectNode | put(String fieldName, String value) | 将新的键值对放入节点中,如果键已经存在就更新值,value 可以为 null。该方法有很多重载形式,支持其他类型的值。 |
ArrayNode | putArray(String propertyName) | 创建新的 ArrayNode 子节点,propertyName 作为此节点的字段值。 |
ObjectNode | putObject(String propertyName) | 创建新的 ObjectNode 子节点,propertyName 作为此节点的字段值。 |
ObjectNode | putNull(String propertyName) | 创建新的 NullNode 子节点,propertyName 作为此节点的字段值。 |
JsonNode | remove(String propertyName) | 删除指定的字段,返回被删除的节点。 |
ObjectNode | remove(Collection<String> propertyNames) | 同时删除多个字段。 |
ObjectNode | removeAll() | 清空所有字段。 |
JsonNode | replace(String propertyName, JsonNode value) | 将 propertyName 字段对应的节点替换成新的 value 节点。字段存在时更新,不存在时新增。最后返回原节点对象。 |
JsonNode | set(String propertyName, JsonNode value) | 功能同 replace() 方法,但返回值为新节点对象。 |
JsonNode | setAll(Map<String, ? extends JsonNode> properties) | 同时设置多个节点。 |
JsonNode | setAll(ObjectNode other) | 解析 other 对象,为节点添加(或更新)other 对象的所有属性值。 |