2013-08-13 1 views
1

J'ai un JSON this que j'ai récupéré en utilisant Bing-Search-API. Maintenant, je ne suis pas sûr comment accéder aux éléments imbriqués en utilisant GSON. J'ai déjà créé le source files pour les données de structure JSON.Comment accéder aux éléments imbriqués à partir d'un JSON en utilisant Java (Bing-Search-API)

Si je fais ceci:

Gson gson = new Gson(); 

JsonParser parser = new JsonParser(); 

JsonArray Jarray = parser.parse(jsonText).getAsJsonArray(); 

Il va me jeter ce n'est pas un JsonArray, donc si je change à JsonObject, comment puis-je récupérer le String MediaUrl de Results.java?

Merci

+0

Avez-vous regardé cette [SO] (http://stackoverflow.com/questions/5490789/json-parsing-using-gson-for-java)? –

+0

N'a pas fonctionné :(cette ligne: jobject = jobject.getAsJsonObject ("données"); n'accepte pas de chaîne pour moi.Est-ce que l'exemple utilise également gson? –

+0

Pouvez-vous télécharger le GIST de votre code –

Répondre

4

Basé sur le javadoc de Gson classe:

Gson gson = new Gson(); 
    Response response = gson.fromJson(jsonText, Response.class); 
    Results firstResult = response.getD().getResults().get(0); 
    System.out.println(firstResult.getMediaUrl()); 

Vous n'avez pas besoin d'utiliser directement le JsonParser.

classes Java doivent être modifiés un peu pour que cela fonctionne:

  • le type de results champ D.java doit être List<Results> afin que Gson peut trouver la classe d'objets pour remplir avec.
  • La dénomination des attributs/champs est incohérente, certains commencent par des minuscules, d'autres par des majuscules. Assurez-vous qu'ils sont identiques dans les classes java et dans la chaîne json (en tenant compte de la sensibilité à la casse). Ce problème peut être résolu en utilisant le FieldNamingStrategy approprié pour la sérialisation/désérialisation.
+0

Merci, mais il retourne null.J'utilise ce que vous avez mentionné: Gson gson = new Gson(); \t Résultats res = gson.fromJson (jsonText, Results.class); \t System.out.println (\t res.getMediaUrl()); –

+0

Pourriez-vous jeter un oeil à mon sens s'il vous plaît? –

+0

[C'est ce que j'ai essayé] (https://gist.github.com/lumalav/6222895#file-jsonparser-java) –

Questions connexes