Jackson – 将字符串转换为 JsonNode
最后更新:2023年6月28日
1. 概述
本快速教程将展示如何使用 Jackson 2 将 JSON 字符串转换为 JsonNode (com.fasterxml.jackson.databind.JsonNode)。
如果您想深入了解并学习 Jackson 2 的其他酷炫功能 – 请前往 主要的 Jackson 教程。
2. 快速解析
非常简单,要解析 JSON 字符串,我们只需要一个 ObjectMapper
@Test
public void whenParsingJsonStringIntoJsonNode_thenCorrect()
throws JsonParseException, IOException {
String jsonString = "{\"k1\":\"v1\",\"k2\":\"v2\"}";
ObjectMapper mapper = new ObjectMapper();
JsonNode actualObj = mapper.readTree(jsonString);
assertNotNull(actualObj);
}
3. 低级解析
如果,出于某种原因,您 需要进行比这更低级的操作,则以下示例公开了负责解析字符串的 JsonParser。
@Test
public void givenUsingLowLevelApi_whenParsingJsonStringIntoJsonNode_thenCorrect()
throws JsonParseException, IOException {
String jsonString = "{\"k1\":\"v1\",\"k2\":\"v2\"}";
ObjectMapper mapper = new ObjectMapper();
JsonFactory factory = mapper.getFactory();
JsonParser parser = factory.createParser(jsonString);
JsonNode actualObj = mapper.readTree(parser);
assertNotNull(actualObj);
}
4. 使用 JsonNode
在 JSON 解析为 JsonNode 对象后,我们可以使用 Jackson JSON 树模型进行操作。
@Test
public void givenTheJsonNode_whenRetrievingDataFromId_thenCorrect()
throws JsonParseException, IOException {
String jsonString = "{\"k1\":\"v1\",\"k2\":\"v2\"}";
ObjectMapper mapper = new ObjectMapper();
JsonNode actualObj = mapper.readTree(jsonString);
// When
JsonNode jsonNode1 = actualObj.get("k1");
assertThat(jsonNode1.textValue(), equalTo("v1"));
}
5. 结论
本文说明了如何将 JSON 字符串解析为 Jackson JsonNode 模型,从而实现对 JSON 对象的结构化处理。
支持本文的代码可在 GitHub 上获取。 一旦你以 Baeldung Pro 会员 身份登录,就开始学习并在项目上进行编码。















