Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

128
Vistas
¿Cómo deserializar la lista con un número dinámico de claves con la misma estructura de valor?

Estoy tratando de encontrar una forma óptima de deserializar campos dinámicos que contengan la misma estructura de objeto de valor:

 "data": { "lastUpdate": 1605299294253, "tableData": [ { "recordId": 1, "isSelected": 1, "myKey1": { "valueRef": 72, "value": "Some value" }, "myKey2": { "valueRef": 0, "value": "123" } } ] }

Para la matriz tableData JSON, probé este enfoque sin éxito:

 import lombok.Data; import java.util.Map; @Data public class TableRowDataVO { private Integer recordId; private Integer recordStatus; private Map<String, TableRowDetailVO> columnData1; private Map<String, TableRowDetailVO> columnData2; }

Esta clase está anidada en otra clase para abarcar todo el cuerpo JSON en data :

 public class TabularDataDTO { private Long lastUpdate; private List<TableRowDataVO> tableData; }

y cada campo dinámico contiene el mismo Objeto del siguiente tipo:

 public class TableRowDetailVO { private Integer valueRef; private String value; }

Tampoco hay garantía de que solo haya 2 claves dinámicas. Puede ser 0 para muchas claves dinámicas que están en TableRowDataVO , pero si hay limitaciones que requieren que me conforme con 2, puedo hacerlo, pero si son posibles 0 para muchos campos dinámicos, sería genial. Estoy tratando de usar ObjectMapper con TypeReference como TabularDataVO pero genera una excepción. ¿Cuál es la forma correcta de diseñar mis objetos de modo que TabularDataVO pueda ser deserializado por el mapeador?

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

dado que la clave es dinámica, cuando procesa datos necesita algún proceso especial.

 @Data public class NewDTO { private Long lastUpdate; private List<Map<String, Object>> tableData; }
over 4 years ago · Santiago Trujillo Denunciar

0

Solo para entender bien tu pregunta. Tu Json es como el siguiente: -

 "data": { "lastUpdate": 1605299294253, "tableData": [ { "recordId": 1, "isSelected": 1, "myKey1": { "valueRef": 72, "value": "Some value" }, "myKey2": { "valueRef": 0, "value": "123" } } ] }

Diferente a

 "data": { "lastUpdate": 1605299294253, "tableData": [ { "recordId": 1, "isSelected": 1, "keys": [ { "valueRef": 72, "value": "Some value" }, { "valueRef": 0, "value": "123" } ] } ] }

Este último se puede deserializar fácilmente usando la biblioteca jackson y definiendo claves como List<Map<String, Object>>

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda