2011-04-21 3 views
1

Comment analyser cette chaîne json particulière avec Gson en Java?Comment analyser la chaîne json qui contient la liste avec gson?

{"orders":[{"oid":"347","status":"1"},{"oid":"348","status":"1"}],"a":14.15,"b":0} 

Ce qui est problématique, c'est la liste des commandes.

Je suppose que l'on doit utiliser un paramètre "type token" pour Gson.parse (json, type-toke), mais je ne sais pas comment cela peut être fait.

Répondre

3

Vous devez créer des types java auxquels il peut être mappé. Donc, vous auriez quelque chose comme ça.

public class Result { 
    private List<Order> orders; 
    private Number a; 
    private Number b; 

    // getter and setter for orders, a, and b 
} 

public class Order { 
    private Number oid; 
    private Number status; 
    // getter and setter for oid and status 
} 

Ensuite, vous pouvez juste faire l'analyse syntaxique avec quelque chose comme

Result result = gson.fromJson(yourSring, Result.class); 

mise en garde, cela est interprétée, code non testé, mais si vous approcher.

+0

Cela fonctionne. Je pensais que cela impliquerait quelque chose de plus compliqué. –

+0

heureusement pas :) – digitaljoel

+0

Est-ce que cela aussi maitain l'ordre de la liste ?? signifie que si je vais faire 'orders.get (0) .getOid() ', puis-il retourner 347 ?? – thekosmix

0

Maintenant, vous pouvez utiliser json-path dans java, voir le document. C'est simple et intelligent. http://code.google.com/p/json-path/

+0

S'il vous plaît expliquer un peu. ne donner que la référence d'un lien externe n'est pas considéré comme une bonne réponse. – Sankumarsingh

Questions connexes