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.