接上文[《[Java] JSON序列化工具fastjson(1.2.83) 与jackson(2.13.3)使用区别(1)》](https://segmentfault.com/a/1190000045100316)
- 实现新建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对象
- 实现新建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();
- 将字符串解析为JSON对象
核心是这段代码 (ObjectNode) OBJECT_MAPPER.readTree(text)
另外也要判空和处理解析异常。
放一个实现的代码:
- 将字符串解析为JSON array
核心是 (ArrayNode) OBJECT_MAPPER.readTree(text);
同步更新到自己的语雀
https://www.yuque.com/dirackeeko/wxkg90/krthoouoflf7f6bg
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。