Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

130
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda