Jackson - Marshall String til JsonNode

1. Oversikt

Denne raske opplæringen viser hvordan du gjør det bruk Jackson 2 for å konvertere en JSON-streng til en JsonNode (com.fasterxml.jackson.databind.JsonNode).

Hvis du vil grave dypere og lære andre kule ting du kan gjøre med Jackson 2 - gå videre til hovedveiledningen for Jackson.

2. Rask parsing

Veldig enkelt, for å analysere JSON-strengen trenger vi bare en ObjectMapper:

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

3. Analyse av lavt nivå

Hvis du av en eller annen grunn trenger å gå lavere nivå enn det, viser følgende eksempel JsonParser ansvarlig med selve analyseringen av strengen:

@Test offentlig ugyldighet gittUsingLowLevelApi_whenParsingJsonStringIntoJsonNode_thenCorrect () kaster JsonParseException, IOException {String jsonString = "{" k1 ":" v1 "," k2 ":" v2 "}"; ObjectMapper mapper = ny ObjectMapper (); JsonFactory fabrikk = mapper.getFactory (); JsonParser parser = factory.createParser (jsonString); JsonNode actualObj = mapper.readTree (parser); assertNotNull (actualObj); }

4. Bruke JsonNode

Etter at JSON er analysert i et JsonNode-objekt, kan vi jobbe med Jackson JSON Tree Model:

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

5. Konklusjon

Denne artikkelen illustrert hvordan man analyserer JSON Strings i Jackson JsonNode modell for å muliggjøre en strukturert behandling av JSON-objektet.

Implementeringen av alle disse eksemplene og kodebiter finner du i github-prosjektet mitt - dette er et formørkelsesbasert prosjekt, så det skal være enkelt å importere og kjøre som det er.


$config[zx-auto] not found$config[zx-overlay] not found