Jackson - Marshall String til JsonNode

1. Oversigt

Denne hurtige vejledning viser, hvordan man gør det brug Jackson 2 til at konvertere en JSON-streng til en JsonNode (com.fasterxml.jackson.databind.JsonNode).

Hvis du vil grave dybere og lære andre seje ting, du kan gøre med Jackson 2 - gå videre til den vigtigste Jackson-tutorial.

2. Hurtig parsing

Meget enkelt, for at analysere JSON-strengen behøver vi kun en ObjectMapper:

@Test offentlig ugyldig nårParsingJsonStringIntoJsonNode_thenCorrect () kaster JsonParseException, IOException {String jsonString = "{" k1 ":" v1 "," k2 ":" v2 "}"; ObjectMapper-kortlægger = ny ObjectMapper (); JsonNode actualObj = mapper.readTree (jsonString); assertNotNull (actualObj); }

3. Analyse af lavt niveau

Hvis du af en eller anden grund har brug for at gå lavere niveau end det, viser følgende eksempel JsonParser ansvarlig med den faktiske parsing af strengen:

@Test offentlig ugyldighed givenUsingLowLevelApi_whenParsingJsonStringIntoJsonNode_thenCorrect () kaster JsonParseException, IOException {String jsonString = "{" k1 ":" v1 "," k2 ":" v2 "}"; ObjectMapper-kortlægger = ny ObjectMapper (); JsonFactory fabrik = mapper.getFactory (); JsonParser parser = fabrik.createParser (jsonString); JsonNode actualObj = mapper.readTree (parser); assertNotNull (actualObj); }

4. Brug af JsonNode

Når JSON er parset i et JsonNode-objekt, kan vi arbejde med Jackson JSON Tree Model:

@Test offentlig ugyldighed givetTheJsonNode_whenRetrievingDataFromId_thenCorrect () kaster JsonParseException, IOException {String jsonString = "{" k1 ":" v1 "," k2 ":" v2 "}"; ObjectMapper-kortlægger = ny ObjectMapper (); JsonNode actualObj = mapper.readTree (jsonString); // Når JsonNode jsonNode1 = actualObj.get ("k1"); assertThat (jsonNode1.textValue (), equalTo ("v1")); }

5. Konklusion

Denne artikel er illustreret hvordan man analyserer JSON Strings i Jackson JsonNode model for at muliggøre en struktureret behandling af JSON-objektet.

Implementeringen af ​​alle disse eksempler og kodestykker kan findes i mit github-projekt - dette er et Eclipse-baseret projekt, så det skal være let at importere og køre som det er.