Décodage JSON Chaîne de caractères en Java

Je suis nouveau à l'aide du json simple bibliothèque en Java et j'ai été par le biais de deux l'encodage et décodage échantillons. La duplication de l'encodage des exemples était bien, mais je n'ai pas été en mesure d'obtenir le décodage à travailler avec un mélange de type JSON.

Un de mes problèmes, c'est qu'il y a un trop grand nombre de classes dans la bibliothèque qui ne sont pas bien documentées, et pour lequel je n'ai pas la source (dans l'ordre pour être en mesure de lire et de comprendre leur but). Par conséquent, j'ai du mal à comprendre comment utiliser un grand nombre de ces classes.

Après la lecture de cet exemple:

String jsonText = "{\"first\": 123, \"second\": [4, 5, 6], \"third\": 789}";
JSONParser parser = new JSONParser();

ContainerFactory containerFactory = new ContainerFactory(){
    public List creatArrayContainer() {
        return new LinkedList();
    }

    public Map createObjectContainer() {
        return new LinkedHashMap();
    }                     
};

try {
    Map json = (Map)parser.parse(jsonText, containerFactory);
    Iterator iter = json.entrySet().iterator();
    System.out.println("==iterate result==");

    while(iter.hasNext()) {
        Map.Entry entry = (Map.Entry)iter.next();
        System.out.println(entry.getKey() + "=>" + entry.getValue());
    }

    System.out.println("==toJSONString()==");
    System.out.println(JSONValue.toJSONString(json));
} catch(ParseException pe) {
    System.out.println(pe);
}

de la json simple officiel de décodage tutoriel, j'ai essayé de décoder ce format JSON:

{
"stat":{
    "sdr": "MAC address of FLYPORT",
    "rcv": "ff:ff:ff:ff:ff:ff",
    "time": "0000000000000",
    "type": 0,
    "subt": 0,
    "argv": [
        {"type": "6","val": "NetbiosName"},
        {"type": "6","val": "MACaddrFlyport"},
        {"type": "6","val": "FlyportModel"},
        {"type": "1","val": id}
    ]
}
}

Je suis en train d'écrire la suite de code à décoder:

    String jsonString = "{\"stat\":{\"sdr\": \"aa:bb:cc:dd:ee:ff\",\"rcv\": \"aa:bb:cc:dd:ee:ff\",\"time\": \"UTC in millis\",\"type\": 1,\"subt\": 1,\"argv\": [{1,2},{2,3}]}}";
    JSONObject jsonObject = new JSONObject(jsonString);
    JSONObject newJSON = jsonObject.getJSONObject("stat");
    System.out.println(newJSON);

Mais ça ne fonctionne pas. Enfait je n'ai pas été en mesure d'obtenir le non modifiée exemple de travail, et que les auteurs n'ont pas expliqué leur code.

Quel est le moyen le plus facile pour décoder ce format JSON comme le montre?

Peut-on voir ton code pour décoder une stat?
Avez-vous vérifié avec l'exemple 5(Stoppable SAX-comme gestionnaire de contenu) dans JSON officiel de décodage tutoriel Comme je peux voir que le code est prévu pour le seul dictionnaire(Map)/Tableau. Mais vous essayez de l'json avec les cartes dans une carte(plusieurs cartes). Si je me trompe, corrigez-moi.
ya.. mon ce dont j'ai besoin pour décoder est cartes cartes... et je suppose que c'est l'un d'entre eux. comme si j'obtiens la valeur de "stat", je peux l'utiliser pour de plus amples décodage JSON.
Manière la plus simple si vous me demandez? Cette >> code.google.com/p/google-gson
Tout d'abord, votre jsonString n'est pas un json valide. Et quelle est cette chose à l'intérieur de argv ??

OriginalL'auteur Sharda Singh | 2013-05-15