Code Simple pour la conversion de JSONObject à une Liste ou JSONArray?
J'ai lu à travers les différents threads et trouvé des problèmes similaires, mais ils ont été assez échec à trouver une solution pour mon problème particulier.
JSONObject orr = (JSONObject)orderRows.get("orderRows");
System.out.println("data in orr = " + orr + "orr's type = " + orr.getClass());
Retourne:
données dans orr =
{"470":[{"locationId":2,"quantity":1,"productId":1007}],"471":[{"locationId":2,"quantity":1,"productId":1008}]}orr l'
type = classe org.json.simple.JSONObject
Je vais essayer d'obtenir ces données dans un tableau/liste/quelque chose où je peux utiliser les touches, 470,471 pour récupérer les données.
Des suggestions ou des pointeurs beaucoup apprécié merci beaucoup...
À préciser:
JSONObject orr = (JSONObject)orderRows.get("orderRows");
JSONArray orderOne = (JSONArray)orr.get("471");
System.out.println(orderOne);
System.out.println(orderOne.get(0));
JSONObject orderOneKey = (JSONObject)orderOne.get(0);
System.out.println(orderOneKey.get("productId"));
C'est ce que je suis après, mais de toute évidence je ne peux pas faire orr.get("471") comme je ne sais pas ce que ce nombre sera.
EDIT:
Apparemment, je ne peux pas répondre à ma propre question pour 8 heures:
Grâce à l'aide d'un ami et de se tripoter, j'ai trouvé une solution, je suis sûr que c'est pas le plus éloquent, mais c'est exactement ce que je recherchais:
for(Object key: orr.keySet()) {
JSONArray orderOne = (JSONArray)orr.get(key);
JSONObject ordervalue = (JSONObject)orderOne.get(0);
System.out.println(ordervalue.get("productId"));
}
Merci pour l'aide et les suggestions les gars.
OriginalL'auteur Mark | 2012-10-29
Vous devez vous connecter pour publier un commentaire.
Grâce à l'aide d'un ami et de se tripoter, j'ai trouvé une solution, je suis sûr que c'est pas le plus éloquent, mais c'est exactement ce que je recherchais:
Merci pour l'aide et les suggestions les gars.
OriginalL'auteur Mark
Les données de votre réponse est de type JSONObject (voir les accolades {}). De sorte que le haut niveau d'objet a deux "champs", 470 et 471. À la fois des données retournées par ces champs sont des tableaux. Ces tableaux ont un seul élément de chaque, qui sont à la fois des objets. Voici donc un exemple de récupérer les données:
Maintenant, une fois que vous avez sorti, vous pouvez transformer ces données en toute structure, comme pour le rendre plus convivial pour l'accès à partir de ce point.
Grâce à l'aide d'un ami et de se tripoter, j'ai trouvé une solution, je suis sûr que c'est pas le plus eloquaint, mais c'est exactement ce que je recherchais:
OriginalL'auteur gamerson
Vous pouvez utiliser une bibliothèque fournissant une liaison de données de soutien.
Vous pouvez essayer de Genson http://code.google.com/p/genson/, il est rapide, facile à utiliser et a un couple de belles caractéristiques. Voici un exemple pour votre problème:
OriginalL'auteur eugen
Vous pouvez également le faire:
dans le cas où vous souhaitez placer tout objet JSON dans le tableau JSON.
OriginalL'auteur Shams