Saltar al contenido

Convirtiendo JsonNode a Java array

Estate atento porque en esta reseña encontrarás el arreglo que buscas.

Solución:

Muevo mi comentario a una respuesta, ya que se votó mucho.

Esto debería hacer lo que necesitaba el OP:

new ObjectMapper().convertValue(jsonNode, ArrayList.class)

Una forma rápida de hacer esto usando el modelo de árbol… convertir el JSON string en un árbol de JsonNode:

ObjectMapper mapper = new ObjectMapper();
JsonNode rootNode = mapper.readTree("......");

Luego extraiga los nodos secundarios y conviértalos en listas:

List x = mapper.convertValue(rootNode.get("x"), ArrayList.class);
List y = mapper.convertValue(rootNode.get("y"), ArrayList.class);

Una forma un poco más larga, pero mejor discutible, de hacer esto es definir una clase que represente la estructura JSON que espera:

public class Request 
    List x;
    List y;

Luego deserializado directamente de la siguiente manera:

Request request = mapper.readValue("......", Request.class);

“… ¿cómo convierto el objeto json en un java array”

import com.google.common.collect.Streams;

public void invoke(JsonNode event)                  
    Streams.stream(event.withArray("x").elements())
        .forEach( num -> Logger.info(num.asDouble()) )

El truco consiste en obtener primero el objeto Iterator usando el método “elements()”, luego usando el método “stream” de Guava para obtener el flujo. Una vez que tengas el stream puedes hacer todo tipo de array operaciones (por ejemplo, filtro, mapa) para consumir sus datos.

Sección de Reseñas y Valoraciones

Nos puedes asistir nuestro quehacer añadiendo un comentario o dejando una puntuación te damos las gracias.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *