Jackson - Marshall String a JsonNode

1. Panoramica

Questo breve tutorial mostrerà come utilizzare Jackson 2 per convertire una stringa JSON in un JsonNode ( com.fasterxml.jackson.databind.JsonNode ).

Se vuoi approfondire e imparare altre cose interessanti che puoi fare con Jackson 2, vai al tutorial principale di Jackson.

2. Analisi rapida

Molto semplicemente, per analizzare la stringa JSON abbiamo solo bisogno di un 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. Analisi di basso livello

Se, per qualche motivo, è necessario andare a un livello inferiore , il seguente esempio espone il JsonParser responsabile dell'effettiva analisi della stringa:

@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. Utilizzo di JsonNode

Dopo che il JSON è stato analizzato in un oggetto JsonNode, possiamo lavorare con il Jackson JSON Tree Model :

@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. conclusione

Questo articolo ha illustrato come analizzare le stringhe JSON nel modello Jackson JsonNode per abilitare un'elaborazione strutturata dell'oggetto JSON.

L'implementazione di tutti questi esempi e frammenti di codice può essere trovata nel mio progetto GitHub : questo è un progetto basato su Eclipse, quindi dovrebbe essere facile da importare ed eseguire così com'è.