Salut la team, je souhaite savoir comment faire pour extraire 4 différents fichier Json de open weather map, l'api se présente comme ceci
{"coord":{"lon":-6.8934,"lat":30.9189},"weather":[{"id":800,"main":"Clair","description":"ciel dégagé"," icon":"01n"}],"base":"stations","main":{"temp":292.31,"feels_like":290.78,"temp_min":292.31,"temp_max":292.31,"pression": 1025,"humidity":19},"visibility":10000,"wind":{"speed":1.03,"deg":0},"clouds":{"all":0},"dt":1666650783 ,"sys":{"type":1,"id":2412,"country":"MA","sunrise":1666593375,"sunset":1666633622},"timezone":3600,"id":2540850 ","name":"Ouarzazate","cod":200}
Je souhaite extraire : dt, sunrise, sunset et description
Ils sont éparpillés un peu partout donc je suis obligé de tout prendre, mais je sais pas comment m'y prendre, voilà ou j'en suis
String cmd ="GET /data/2.5/weather?q="+ville+"&appid=xxxxxxxxxxxxx3ad061374";
envoieAuESP8266(cmd);
if (! Serial1.find("{\"coord\":")) {}
while (i<60000) {
if(Serial1.available()) {
String json = "{\"coord\":";
char c = Serial1.read();
json=json+c;
if(c=='}'){
Serial.println ("fichier json trouvé");
affiche_lcd ("fichier json","trouvé");
break;}
i=0;
}
i++;
}
StaticJsonDocument<768> doc;
DeserializationError error = deserializeJson(doc, json);
if (error) {
Serial.print(F("deserializeJson() failed: "));
Serial.println(error.f_str());
return;
}
const char* description = doc["description"];
long dt = doc["dt"];
long sys_sunrise = doc["sunrise"];
long sys_sunset = doc["sunset"];
delay(3000);
Le problème c'est que évidemment il s'arrête à la première accolade qu'il rencontre, comment faire pour qu'il arrive jusqu'à la dernière ? Ou qlq'un a-t-il une autre méthode ?