Json probleme android
lukas6410
Messages postés
25
Date d'inscription
Statut
Membre
Dernière intervention
-
lukas6410 Messages postés 25 Date d'inscription Statut Membre Dernière intervention -
lukas6410 Messages postés 25 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai ici un json d'une api que voici:
le problème c'est que je m'embrouille a recuperer les array et objet mon but est de recuprer la temperature en degres la ville est les condition(object text) voila mon code et mes erreures:
est voici le logcat:
merci de bien vouloir m'aider à m'y retrouver
j'ai ici un json d'une api que voici:
{ "location": { "name": "Paris", "region": "Ile-de-France", "country": "France", "lat": 48.87, "lon": 2.33, "tz_id": "Europe/Paris", "localtime_epoch": 1617720813, "localtime": "2021-04-06 16:53" }, "current": { "last_updated_epoch": 1617720300, "last_updated": "2021-04-06 16:45", "temp_c": 6.0, "temp_f": 42.8, "is_day": 1, "condition": { "text": "Light sleet", "icon": "//cdn.weatherapi.com/weather/64x64/day/317.png", "code": 1204 }, "wind_mph": 17.4, "wind_kph": 28.1, "wind_degree": 290, "wind_dir": "WNW", "pressure_mb": 1017.0, "pressure_in": 30.5, "precip_mm": 1.0, "precip_in": 0.04, "humidity": 49, "cloud": 50, "feelslike_c": 2.7, "feelslike_f": 36.9, "vis_km": 10.0, "vis_miles": 6.0, "uv": 2.0, "gust_mph": 13.9, "gust_kph": 22.3, "air_quality": { "co": 220.3000030517578, "no2": 2.200000047683716, "o3": 88.69999694824219, "so2": 1.100000023841858, "pm2_5": 1.2999999523162842, "pm10": 1.600000023841858, "us-epa-index": 1, "gb-defra-index": 1 } } }
le problème c'est que je m'embrouille a recuperer les array et objet mon but est de recuprer la temperature en degres la ville est les condition(object text) voila mon code et mes erreures:
@Override protected void onPostExecute(JSONObject jsonObject) { super.onPostExecute(jsonObject); try { JSONArray current = jsonObject.getJSONArray("current"); JSONArray location = jsonObject.getJSONArray("location"); JSONArray condition = current.getJSONArray(0); String string_condition = condition.getString(0); String string_temperature = current.getString(2); String string_ville = location.getString(0); textToSpeech.speak("Actuellement à" + string_ville + "il fait " + string_temperature + "°" + "avec" + string_condition, TextToSpeech.QUEUE_ADD, null); addMessageLayout("Actuellement à" + string_ville + "il fait " + string_temperature + "°" + "avec" + string_condition, 0, null); } catch (JSONException e) { e.printStackTrace(); } }
est voici le logcat:
2021-04-06 20:43:06.400 5355-5355/com.example.learningbot W/System.err: org.json.JSONException: Value {"last_updated_epoch":1617733800,"last_updated":"2021-04-06 20:30","temp_c":5,"temp_f":41,"is_day":0,"condition":{"text":"Light snow","icon":"\/\/cdn.weatherapi.com\/weather\/64x64\/night\/326.png","code":1213},"wind_mph":13.6,"wind_kph":22,"wind_degree":330,"wind_dir":"NNW","pressure_mb":1017,"pressure_in":30.5,"precip_mm":0.3,"precip_in":0.01,"humidity":38,"cloud":62,"feelslike_c":0.9,"feelslike_f":33.6,"vis_km":10,"vis_miles":6,"uv":2,"gust_mph":16.6,"gust_kph":26.6} at current of type org.json.JSONObject cannot be converted to JSONArray 2021-04-06 20:43:06.401 5355-5355/com.example.learningbot W/System.err: at org.json.JSON.typeMismatch(JSON.java:100) 2021-04-06 20:43:06.401 5355-5355/ com.example.learningbot W/System.err: at org.json.JSONObject.getJSONArray(JSONObject.java:591)
merci de bien vouloir m'aider à m'y retrouver
A voir également:
- Json probleme android
- Android recovery - Guide
- Begone android - Accueil - Protection
- À quoi sert google drive sur android - Guide
- Historique presse-papier android - Guide
- Emulateur pokemon android - Guide
1 réponse
Salut,
Le message d'erreur est explicite : tu essaies de "lire" un objet JSON sous forme de tableau.
Un tableau en JSON est un objet délimité par des crochets [...] qui contient une liste d'objets délimités par des accolades {}.
Ici,
Le message d'erreur est explicite : tu essaies de "lire" un objet JSON sous forme de tableau.
Un tableau en JSON est un objet délimité par des crochets [...] qui contient une liste d'objets délimités par des accolades {}.
Ici,
location, current, air_qualitysont des objects, tu n'as pas de tableau. Donc, il faut utiliser la méthode
getJSONObject().
lukas6410
Messages postés
25
Date d'inscription
Statut
Membre
Dernière intervention
4
Je vais essayer ça ,merci ça fesait longtemp que je n'avais pas traité du json je tacherai de m'en souvenir