Comment faire pour récupérer toutes les nœuds et les nœuds enfants de l'objet JSON en java?
Je veux récupérer tous les nœuds de la ci-dessous d'objet JSON. Par exemple
résultat, identification, de paiement, etc.
{
"result": {
"identification": {
"transactionid": "Merchant Assigned ID",
"uniqueid": "d91ac8ff6e9945b8a125d6e725155fb6",
"shortid": "0000.0005.6238",
"customerid": "customerid 12345"
},
"payment": {
"amount": "2400",
"currency": "EUR",
"descriptor": "order number"
},
"level": 0,
"code": 0,
"method": "creditcard",
"type": "preauthorization",
"message": "approved",
"merchant": {
"key1": "Value1",
"key0": "Value0"
}
},
"id": 1,
"jsonrpc": "2.0"
}
J'ai utilisé le code suivant:
JSONObject partsData = new JSONObject(returnString);
Iterator<String> iterator = jsonObject.keys();
while (iterator.hasNext()) {
String result=iterator.next();
System.out.println(result);
}
Mais le résultat que j'obtiens est:
id
result
jsonrpc
Comment puis-je obtenir tous les noms de noeud?
Vous venez d'effectuer une itération sur le premier niveau de clés, mais votre clé "résultat" qui pointe vers un autre
Si vous avez besoin d'analyser plusieurs choses dans votre json, je recommande d'utiliser jackson bibliothèque.
JSONObject
contenant un autre niveau de clés.Si vous avez besoin d'analyser plusieurs choses dans votre json, je recommande d'utiliser jackson bibliothèque.
OriginalL'auteur AGM | 2015-06-24
Vous devez vous connecter pour publier un commentaire.
Déplacer votre itérateur logique (pour itérer sur json) dans une méthode
par exemple,
De cette façon, vous pouvez vérifier pour chaque nœud de l'objet json.
Je considère le typage comme un beaucoup plus agréable que de travailler avec des exceptions.
Merci pour cette remarque @Ceekay et Uwe
Merci beaucoup pour la réponse. J'ai essayé avec votre réponse, mais je suis une exception . Exception in thread "main" org.json.JSONException: JSONObject["id"] n'est pas un JSONObject.
Veuillez regarder le plus tôt de réponse fournis par moi-même dans le lien modifier. Idéalement, on ne devrait pas être de cette exception, il est une instance de vérification pour éviter le bloc try catch (voir la précédente version de la réponse)
OriginalL'auteur Waqar
Vous devez analyser à travers tous les objets.
OriginalL'auteur Vinay