Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

129
Views
¿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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!