1. Обзор
В этом кратком руководстве показано, как использовать Jackson 2 для преобразования строки JSON в JsonNode (com.fasterxml.jackson.databind.JsonNode ).
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.
Оригинал статьи: https://www.baeldung.com/jackson-json-to-jsonnode