Джаксън - Маршалов низ към JsonNode

1. Общ преглед

Този бърз урок ще покаже как да използвате Jackson 2 за конвертиране на JSON String в JsonNode ( com.fasterxml.jackson.databind.JsonNode ).

Ако искате да копаете по-дълбоко и да научите други страхотни неща, които можете да правите с Jackson 2 - преминете към основния урок за Jackson.

2. Бързо анализиране

Много просто, за да анализираме JSON String, ни трябва само 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 отговорен с действителния анализ на String:

@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 Object, можем да работим с модела на дървото на 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 Strings в модела Jackson JsonNode , за да се даде възможност за структурирана обработка на JSON обекта.

Внедряването на всички тези примери и кодови фрагменти може да бъде намерено в моя github проект - това е проект, базиран на Eclipse, така че трябва да е лесно да се импортира и да се изпълнява както е.