Trouvez efficacement une valeur-clé dans JSON avec JAVA


Je veux savoir si une paire clé-valeur existe dans un JSON donné une clé. Cette paire clé-valeur peut ne pas être sous root. Il est possible intégré profondément dans le document. Par exemple:

{"Persons":[
  {"Person":
    {"name":"john"}
  }]
}

Et je veux avoir quelque chose comme JsonDoc.a("nom"), et renvoie la valeur true. Je recherche en ligne et trouve ce fil: Java: Json a key / field

Deux réponses (minimal-json et org.json) les deux ont des fonctions appelées has() ou get(), mais j'ai regardé dans leur code source, ils sont tous les deux essayer de trouver la clé-valeur sous root. Ils ne répondent donc pas à mes besoins.

Je peux penser à parcourir tout le json et essayer de trouver la valeur-clé, mais cela ne semble pas efficace.

Author: Community, 2015-07-10

1 answers

Si vous utilisez Jackson, vous pouvez appeler findParent sur un JsonNode qui recherchera un champ dans le nœud ou son descendant.

Http://fasterxml.github.io/jackson-databind/javadoc/2.2.0/com/fasterxml/jackson/databind/JsonNode.html#findParent(java.lang.String)

 1
Author: habsq, 2015-07-11 01:41:48