1. 概述
本教程将展示如何使用Jackson 2把JSON字符串转为JsonNode。
学习更多,请访问我的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上获取。