Comment trouver le nom spécifié et sa valeur en JSON-chaîne à partir de Java?
Supposons que nous avons la prochaine chaîne JSON:
{
"name" : "John",
"age" : "20",
"address" : "some address",
"someobject" : {
"field" : "value"
}
}
Quelle est la méthode la plus simple (mais toujours correct, c'est à dire les expressions régulières ne sont pas acceptables) de façon à trouver le terrain age
et sa valeur (ou de déterminer qu'il n'y a pas de champ avec le nom donné)?
p.s. tout open-source libs sont ok.
p.s.2: s'il vous plaît, ne postez pas de liens vers les bibliothèques - ce n'est pas une réponse utile. "Show me the code" (c).
- "Show me the code" de ce que vous avez essayé. Liens vers des libs doit être parfaitement bien, vous pouvez apprendre sur votre propre à partir de là. Si votre question était "Comment parser du JSON avec XXX lib?", ensuite, votre demande de code est valide, sinon, n'ayez pas peur d'expérimenter quelque chose de nouveau.
- pas d'accord.
- A ce problème s'est résolu?
- essayez cette importation com.google.gson.JsonObject; import com.google.gson.JsonParser; JsonParser parser = new JsonParser(); JsonObject obj = parser.parse(jsonString).getAsJsonObject(); String age = obj.get("age").getasstring l'();
Vous devez vous connecter pour publier un commentaire.
Utiliser une librairie JSON pour analyser la chaîne et d'en récupérer la valeur.
La suite exemple de base utilise le haut- Parser JSON de Android.
Plus avancé JSON bibliothèques, comme jackson, google-gson, json-io ou genson, vous permettent de convertir des objets JSON à des objets Java directement.
Gson permet de pour une de la plus simple des solutions possibles. Comparativement à un Api comme Jackson ou svenson, Gson par défaut n'a même pas besoin de la inutilisés JSON éléments ont fixations disponibles dans la Java de la structure. Spécifique à la question posée, voici une solution qui fonctionne.
"field"
au lieu de"age"
il aurait dû créer une nouvelle classe pour la liaison)Je suis d'accord que Google
Gson
est clair et facile à utiliser. Mais vous devez créer un résultat de la classe pour obtenir un exemple de chaîne JSON. Si vous ne pouvez pas préciser le résultat de la classe, de l'utilisationjson-simple
:Avantages et les inconvénients de
Gson
etjson-simple
est à peu près comme les avantages et les inconvénients de l'utilisateur défini par l'Objet Java etMap
. L'objet que vous définissez est clair pour tous les champs (nom et type), mais moins souple queMap
.Je pense que l'aide du code de la JSON site web est généralement une bonne idée. Si vous êtes dans Maven, ceci est pour vous: