Jackson - Marshall String a JsonNode

1. Información general

Este rápido tutorial mostrará cómo usar Jackson 2 para convertir una cadena JSON en un JsonNode ( com.fasterxml.jackson.databind.JsonNode ).

Si desea profundizar y aprender otras cosas interesantes que puede hacer con Jackson 2 , diríjase al tutorial principal de Jackson.

2. Análisis rápido

Muy simple, para analizar la cadena JSON solo necesitamos 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. Análisis de bajo nivel

Si, por alguna razón, necesita ir a un nivel inferior , el siguiente ejemplo expone al JsonParser responsable del análisis real de la Cadena:

@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. Usando el JsonNode

Después de analizar el JSON en un objeto JsonNode, podemos trabajar con el modelo de árbol JSON de Jackson :

@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. Conclusión

Este artículo ilustró cómo analizar cadenas JSON en el modelo Jackson JsonNode para permitir un procesamiento estructurado del objeto JSON.

La implementación de todos estos ejemplos y fragmentos de código se puede encontrar en mi proyecto github ; este es un proyecto basado en Eclipse, por lo que debería ser fácil de importar y ejecutar tal como está.