Comment obtenir une valeur de gson objet par clé

J'ai essayé de suivre cette solution Comment trouver le nom spécifié et sa valeur en JSON-chaîne à partir de Java?

Toutefois, il ne semble pas faire sens.

Je définir un nouveau gson objet à partir d'une chaîne:

Exemple de chaîne ici: http://api.soundrop.fm/spaces/XJTt3mXTOZpvgmOc

public void convertToJson()
{
    Gson gson = new Gson();
    Object gsonContent = gson.fromJson( stringContent, RadioContent.class );
}

Et puis essayer de retourner une valeur:

public Object getValue( String find )
{
    return gsonContent.find;
}

Enfin son nom avec:

public static void print( String find = "title" )
{
    Object value = radioContent.getValue( find );

    System.out.println( value );
}

Cependant j'obtiens une erreur:

java: cannot find symbol
  symbol:   variable find
  location: variable gsonContent of type java.lang.Object

Complète des classes:
Classe principale: http://pastebin.com/v4LrZm6k
Radio de classe: http://pastebin.com/2BWwb6eD

  • Tout d'abord obtenu à json.org et l'étude de la syntaxe JSON. Il existe deux types de JSON structures, des "objets" et des "tableaux". Tout est construit par la superposition de ces. Des "objets" vous accédez à l'aide des touches, tandis que des "tableaux" sont accessibles avec un index numérique. En fonction de la boîte à outils que vous utilisez le "désérialisé" JSON sera représenté plain old Java Cartes ("objets") et les Listes ("tableaux") ou de la Carte/Liste des classes comme appartenant à l'JSON kit que vous utilisez. (Il est important de noter que le JSON "objet" n'est pas le même que le Java "Objet".)
  • Essentiellement, tout ce que je veux faire est d'obtenir la valeur d'une clé. Donc je suppose que les objets sont ce que je dois travailler avec.
  • Parser le JSON comme un JsonObject et de récupérer le terrain vous avez besoin.
  • Récupérer le champ est ce que j'ai tenté de le faire ici.
  • Dans le cas général (sans regarder les entrants JSON), lorsque vous analysez JSON vous ne savez pas si vous recevez en retour un objet ou un tableau. Donc, si vous voulez utiliser instanceof pour vérifier, et puis jeté du type approprié. Si vous de "fiducie" au format JSON à être d'une certaine façon, vous pouvez sauter et d'analyser directement comme un objet. Dans les deux cas, une fois que vous avez un objet (Java Carte), vous pouvez get l'élément que vous souhaitez à l'aide de la touche appropriée. Bien sûr, si vous voulez quelque chose de plusieurs couches, vous devez "peler l'oignon" pour y arriver.
  • (Malheureusement, Gson cache ce niveau d'accès, vous forçant à utiliser un plus obscurs approche.)
  • J'ai lu à ce sujet, j'ai besoin de faire quelque chose le long des lignes de: personnes = jsonobject.obtenir(les gens), alors personne = les gens.get(personne)

InformationsquelleAutor Nonnisi | 2014-02-07