Jackson Json工具的使用总结

Jackson的主要模块

  1. Streaming  jackson-core 定义了低级流式处理 API,并包括特定于 JSON 的实现
  2. Annotations jackson-annotations 包含标准的 Jackson 注释
  3. Databind jackson-databind 实现数据绑定,依赖于streaming和Annotations

使用例子

在缓存中序列化和反序列化

在缓存的场景下,在反序列化时,需要创建与序列化时相同的类对象。 这种情况下需要在序列化时写入对象的类型信息。
进行如下配置:

		ObjectMapper objectMapper = new ObjectMapper();
		objectMapper.activateDefaultTyping(BasicPolymorphicTypeValidator
				.builder()
				.allowIfBaseType(Object.class)
				.build(), ObjectMapper.DefaultTyping.NON_FINAL);

序列化后的数据中带有类型信息

JsonNode获取

        String json = "{\"a\": 1, \"b\":{\"c\":2}}";
        ObjectMapper objectMapper = new ObjectMapper();
        JsonNode node = objectMapper.readTree(json);
        System.out.println(node.path("b").path("d").asText(""));//不会报空指针
        System.out.println(node.path("b").path("c").asText(""));

从JsonNode获取节点时有2种情况:1. node不存在,get方法返回null,path方法会返回MissingNode;2. 节点的值为null,此时会返回一个NullNode
使用path而不是get方法可以避免NPE

posted @ 2025-11-13 17:29  Hekk丶  阅读(4)  评论(0)    收藏  举报