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

307
Visualizações
Jerarquía dinámica de varios niveles JSON a Java Pojo. Reutilización para múltiples proyectos

Tengo JSON como a continuación

 { "name" : "sahal", "address" : [ { "state" : "FL" }, { "country" : "FL", "city" : { "type" : "municipality", "value" : "California City" } }, { "pin" : "87876" } ] }

Ninguna de las claves: valor es constante. El nombre puede cambiar en cualquier momento. Y en algún momento el nombre viene como FirstName .

Probé con @JsonAnySetter y @JsonNode. Estos trabajos con una sola jerarquía

¿Alguna otra forma en que pueda hacer esto y reutilizarlo para otra estructura JSON sin escribir el Pojo para cada proyecto?

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Considere usar JsonNode y fusionar un ciclo de jerarquía para extraer todas las claves y valores de forma dinámica, independientemente de los patrones, las relaciones y los valores.

 public static void main(String[] args) throws JsonProcessingException { //which hierarchy is your json object JsonNode node = nodeGenerator(hierarchy); JSONObject flat = new JSONObject(); node.fields().forEachRemaining(o -> { if (!o.getValue().isContainerNode()) flat.put(o.getKey(), o.getValue()); else { parser(o.getValue(), flat); } }); System.out.println(flat); System.out.println(flat.get("type")); } public static JsonNode nodeGenerator(JSONObject input) throws JsonProcessingException { ObjectMapper mapper = new ObjectMapper(); return mapper.readTree(input.toString()); } public static void parser(JsonNode node, JSONObject flat) { if (node.isArray()) { ArrayNode array = node.deepCopy(); array.forEach(u -> u.fields().forEachRemaining(o -> { if (!o.getValue().isContainerNode()) flat.put(o.getKey(), o.getValue()); else { parser(o.getValue(), flat); } })); } else { node.fields().forEachRemaining(o -> flat.put(o.getKey(), o.getValue())); } }

Que en su caso extrajo json será el siguiente: ingrese la descripción de la imagen aquí

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