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. 低級解析
如果出於某種原因,您需要比該級別更深入地進行解析,以下示例展示了負責實際解析字符串的 <em >JsonParser</em>:
@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</h2
在將 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 對象的結構化處理。