Jackson - Marshall String naar JsonNode

1. Overzicht

Deze korte tutorial laat zien hoe gebruik Jackson 2 om een ​​JSON-string naar een JsonNode (com.fasterxml.jackson.databind.JsonNode).

Als je dieper wilt graven en leren andere coole dingen die je kunt doen met de Jackson 2 - ga naar de belangrijkste Jackson-tutorial.

2. Snel parseren

Heel eenvoudig, om de JSON-string te ontleden hebben we alleen een ObjectMapper:

@Test openbare leegte whenParsingJsonStringIntoJsonNode_thenCorrect () gooit JsonParseException, IOException {String jsonString = "{" k1 ":" v1 "," k2 ":" v2 "}"; ObjectMapper-mapper = nieuwe ObjectMapper (); JsonNode actualObj = mapper.readTree (jsonString); assertNotNull (actualObj); }

3. Parseren op laag niveau

Als u om de een of andere reden moet naar een lager niveau gaan dan dat, het volgende voorbeeld toont de JsonParser verantwoordelijk voor het daadwerkelijke ontleden van de String:

@Test openbare leegte gegevenUsingLowLevelApi_whenParsingJsonStringIntoJsonNode_thenCorrect () gooit JsonParseException, IOException {String jsonString = "{" k1 ":" v1 "," k2 ":" v2 "}"; ObjectMapper-mapper = nieuwe ObjectMapper (); JsonFactory factory = mapper.getFactory (); JsonParser-parser = factory.createParser (jsonString); JsonNode actualObj = mapper.readTree (parser); assertNotNull (actualObj); }

4. Gebruik de JsonNode

Nadat de JSON is geparseerd in een JsonNode-object, kunnen we werken met het Jackson JSON Tree Model:

@Test openbare ongeldig gegevenTheJsonNode_whenRetrievingDataFromId_thenCorrect () gooit JsonParseException, IOException {String jsonString = "{" k1 ":" v1 "," k2 ":" v2 "}"; ObjectMapper-mapper = nieuwe ObjectMapper (); JsonNode actualObj = mapper.readTree (jsonString); // When JsonNode jsonNode1 = actualObj.get ("k1"); assertThat (jsonNode1.textValue (), equalTo ("v1")); }

5. Conclusie

Dit artikel is geïllustreerd hoe JSON Strings in de Jackson JsonNode model- om een ​​gestructureerde verwerking van het JSON-object mogelijk te maken.

De implementatie van al deze voorbeelden en codefragmenten is te vinden in mijn github-project - dit is een op Eclipse gebaseerd project, dus het zou gemakkelijk moeten kunnen worden geïmporteerd en uitgevoerd zoals het is.


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