Question

Je ne travaille pas souvent avec JSON, mais j'avais un peu de mal à le faire sous Android sans autres bibliothèques.je suis tombé sur Ion par Koush et j'aimerais l'utiliser pour récupérer des données météorologiques pour Londres.L'API JSON que j'utiliserai provient de Ouvrez Météo ici.Pour autant que je sache, le JSON est valide, je suis donc maintenant coincé du côté Android.Mon objectif final est d'avoir un objet/chaîne qui rapporte Londres Main > temp.Ceci est mon code Android, mais je ne sais pas quoi faire ensuite.Des idées?

private void getTemperature() {
Log.d(TAG, "2");
final JsonObject json = new JsonObject();
Ion.with(this, "http://api.openweathermap.org/data/2.5/weather?q=London,uk")
.asJsonObject().setCallback(new FutureCallback<JsonObject>() {
    @Override
    public void onCompleted(Exception e, JsonObject result) {
    // do stuff with the result or error
    Log.d("TAG", "Complete");
    //json = result;
    }
    });
}

Mon code arrive à l'instruction de journal "Complet", mais maintenant j'essaie de définir le résultat sur mon objet json que j'ai créé, donc je supprime le commentaire //json = result, mais j'obtiens une erreur dans Eclipse.De l'aide?J'aimerais que cette méthode affiche simplement le Main -> Temp ce qui (à l'heure actuelle) est de 284,51.

Était-ce utile?

La solution

L'utilisation typique des ions est asynchrone, mais elle bénéficie d'un support synchrone.Au lieu d'utiliser setCallback (async), utilisez get() (sync) pour le récupérer de manière synchrone.Cela bloquera cependant votre fil de discussion actuel.

final JsonObject json = Ion.with(this, "http://api.openweathermap.org/data/2.5/weather?q=London,uk")
.asJsonObject().
.get();

Autres conseils

Puisque vous avez marqué la variable json comme finale, je ne pense pas que vous puissiez la réaffecter au point d'aboutir à votre méthode onCompleted().

Je recommanderais de créer une AsyncTask avec un HttpClient pour extraire le JSON.Je pense que ce serait plus simple et plus propre.

Exemple HttpClienthttp://www.mkyong.com/java/apache-httpclient-examples/

Si vous souhaitez réellement analyser le JSON, je recommanderais le package Google GSON

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top