Рубрики
Без рубрики

Строка Джексона – Маршалла в JsonNode

Как разобрать строку JSON в модель JsonNode Jackson 2.

Автор оригинала: Eugen Paraschiv.

1. Обзор

В этом кратком руководстве будет показано, как использовать Jackson 2 для преобразования строки JSON в JsonNode ( com.fasterxml.jackson.databind.JsonNode ).

Если вы хотите копнуть глубже и узнать другие интересные вещи, которые вы можете сделать с помощью Jackson 2 – перейдите к основному учебнику Джексона .

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, мы можем работать с моделью дерева Джексона 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 model , чтобы включить структурированную обработку объекта JSON.

Реализацию всех этих примеров и фрагментов кода можно найти в моем проекте github – это проект на основе Eclipse, поэтому его должно быть легко импортировать и запускать как есть.