接上文[《[Java] JSON序列化工具fastjson(1.2.83) 与jackson(2.13.3)使用区别(1)》](https://segmentfault.com/a/1190000045100316)

  1. 实现新建JSON对象
    5.1fastjson
    JSONObject obj = new JSONObject();

5.2 jackson
可以通过 ObjectMapper 或 JsonNodeFactory 来创建一个 ObjectNode。

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.fasterxml.jackson.databind.node.JsonNodeFactory;

public class JsonUtil {
  private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();

  public static void main(String[] args) {
    ObjectNode jsonObject = OBJECT_MAPPER.createObjectNode();

    // 或者使用JsonNodeFactory 
    // ObjectNode jsonObject = JsonNodeFactory.instance.objectNode();
    jsonObject.put("name", "John Doe");
    jsonObject.put("age", 30);
    jsonObject.put("married", true);

    System.out.println(jsonObject.toString());
  }
}

建议封装JsonUtil.createObjectNode来实现新建JSON对象

  1. 实现新建JSON array
    6.1 fastjson
    JSONArray arr = new JSONArray();

6.2 jackson
与5.2相似,也有ObjectMapper和JsonNodeFactory两种方式创建

ArrayNode arrayNode = OBJECT_MAPPER.createArrayNode();

ArrayNode arrayNode = JsonNodeFactory.instance.arrayNode();

同样建议封装JsonUtil.createArrayNode();

  1. 将字符串解析为JSON对象
    核心是这段代码 (ObjectNode) OBJECT_MAPPER.readTree(text)

另外也要判空和处理解析异常。

放一个实现的代码:
image.png

  1. 将字符串解析为JSON array
    核心是 (ArrayNode) OBJECT_MAPPER.readTree(text);
    image.png

同步更新到自己的语雀
https://www.yuque.com/dirackeeko/wxkg90/krthoouoflf7f6bg


DiracKeeko
125 声望2 粉丝