Hey, hätte mal ne Frage.
Ich arbeite aktuell an einem privaten Projekt, zu dem Ihr mir hier im Forum auch schon super geholfen habt.
Für dieses Projekt arbeite ich nun das erste mal mit APIs. (War vorher halt nie nötig ^^)
Genauer mit der Wetter API von openweathermap.org.
Wenn ich die API nutze kommt z.B. solch ein String dabei raus
Spoiler anzeigen
{"coord":{"lon":139,"lat":35},"weather":[{"id":804,"main":"Clouds","description":"Bedeckt","icon":"04d"}],"base":"stations","main":{"temp":27.4,"feels_like":31.13,"temp_min":26.65,"temp_max":27.4,"pressure":1010,"humidity":84},"visibility":10000,"wind":{"speed":0.54,"deg":131,"gust":1.2},"clouds":{"all":92},"dt":1659846407,"sys":{"type":2,"id":2019346,"country":"JP","sunrise":1659815850,"sunset":1659865332},"timezone":32400,"id":1851632,"name":"Shuzenji","cod":200}
Nun hatte ich erst etwas Schwierigkeiten diese ganzen Informationen auseinander zu dröseln.
Gelöst habe ich das nun so:
Spoiler anzeigen
Func _GetWeather()
Local $sLat = "XXXXX"
Local $sLon = "XXXXX"
Local $sKey = "XXXXX"
Local $sURL = "https://api.openweathermap.org/data/2.5/weather?lat=" & $sLat & "&lon=" & $sLon & "&appid=" & $sKey & "&lang=de&units=metric"
Local $aData[5]
$sSource = _INetGetSource($sURL, True)
$aSplitMain = StringSplit($sSource, ",")
$aSplit1 = StringSplit($aSplitMain[5], ":") ;==> description
$aData[0] = StringReplace($aSplit1[2], '"', '')
$aSplit2 = StringSplit($aSplitMain[8], ":") ;==> temp
$aSplitTemp = StringSplit($aSplit2[3], ".")
$aData[1] = $aSplitTemp[1] & " °C"
$aSplit3 = StringSplit($aSplitMain[13], ":") ;==> humidity
$aData[2] = StringReplace($aSplit3[2], "}", '') & " %"
$aSplit4 = StringSplit($aSplitMain[17], ":") ;==> wind speed
$aData[3] = $aSplit4[3] & " m/s"
$aSplit5 = StringSplit($aSplitMain[29], ":") ;==> city
$aData[4] = StringReplace($aSplit5[2], '"', '')
Return $aData
EndFunc
Alles anzeigen
Da ich für mein Projekt nur 5 Daten brauche fische ich auch nur diese raus, da is also längst nicht alles drin was die API hergibt.
Was mich aber interessiert is, wie Ihr diesen String in brauchbare Informationen aufspaltet.
Meine Methode funktioniert zwar prima, scheint mir aber recht umständlich.
Mir gehts einfach darum, zu lernen wie ich das künftig besser machen kann.
Liebe Grüße
Micha