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
</string,>
List<data> dataFromFile = new ObjectMapper()
.readValue(inputStream, new TypeReference<>() {});
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 objetoTypeReference
que le indique específicamente alObjectMapper
cómo analizar los datos JSON en objetosData
.Aquí tienes un ejemplo de cómo podemos lograr esto:
En este fragmento de código, creamos una instancia de
ObjectMapper
y luego creamos un objetoTypeReference
que especifica que queremos analizar los datos JSON en una lista de objetosData
.Luego, utilizamos el método
readValue()
de la claseObjectMapper
para analizar los datos JSON delinputStream
y mapearlos a una lista de objetosData
utilizando el objetotypeReference
.La lista resultante (
dataFromFile
) contendrá todos los objetosData
analizados a partir de los datos JSON en el flujo de entrada.