es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Convertir un archivo json (array json) a una lista de objetos complejos con un mapa como una de las propiedades.

Tengo una clase (llamémosla Data) que está definida de la siguiente manera:

private String id;
private String eventId;
private int aggrInterval;
@JsonProperty("map")
private Map<string, double[]=""> dataseries;

También tengo un archivo json que se ve así:

[{"eventId":"a","id":"ce6","aggrInterval":5,"dataseries":{"vol":[252.0,243.0],"speed":[50.0,51.0]}},{...}, {...}]

Ahora, me gustaría extraer todos los objetos del archivo y guardarlos en una lista que contenga objetos Data. Hice lo siguiente, pero no funciona:

java
List<data> dataFromFile = new ObjectMapper()
.readValue(inputStream, new TypeReference<>() {});
</string,>

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El código anterior no funciona porque le falta la información sobre cómo mapear los datos JSON a la clase Data. Para solucionar esto, necesitamos crear un objeto TypeReference que le indique específicamente al ObjectMapper cómo analizar los datos JSON en objetos Data.

    Aquí tienes un ejemplo de cómo podemos lograr esto:

    ObjectMapper mapper = new ObjectMapper();
    TypeReference<><data>> typeReference = new TypeReference<><data>>() {};
    
    List<data> dataFromFile = mapper.readValue(inputStream, typeReference);
    

    En este fragmento de código, creamos una instancia de ObjectMapper y luego creamos un objeto TypeReference que especifica que queremos analizar los datos JSON en una lista de objetos Data.

    Luego, utilizamos el método readValue() de la clase ObjectMapper para analizar los datos JSON del inputStream y mapearlos a una lista de objetos Data utilizando el objeto typeReference.

    La lista resultante (dataFromFile) contendrá todos los objetos Data analizados a partir de los datos JSON en el flujo de entrada.

Comments are closed.