Jackson – Marshall String to JsonNode
1.概述
本快速教程将展示如何使用Jackson 2将JSON字符串转换为JsonNode(com.fasterxml.jackson.databind.JsonNode)。
如果您想更深入地学习其他有趣的事情,可以使用Jackson 2进行操作-转到Jackson的主要教程。
2.快速解析
很简单,要解析JSON字符串,我们只需要一个ObjectMapper:
1 2 3 4 5 6 7 8 9 10 | @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.低层解析
如果由于某种原因需要将其设置为更低的级别,则以下示例公开负责实际解析String的JsonParser:
1 2 3 4 5 6 7 8 9 10 11 12 | @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树模型:
1 2 3 4 5 6 7 8 9 10 11 | @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项目中找到–这是一个基于Eclipse的项目,因此应该很容易直接导入和运行。