2016-04-24 18 views
0

Dies ist die Antwort, die ich von Weather Underground erhalten:Weather Underground API gibt JSON mit Formatierungszeichen zurück (viele n t und so). Gibt es eine Möglichkeit, unformatierten JSON von ihnen zu erhalten?

"\n{\n \"response\": {\n \"version\":\"0.1\",\n \"termsofService\":\"http://www.wunderground.com/weather/api/d/terms.html\",\n \"features\": {\n \"geolookup\": 1\n }\n\t}\n\t\t,\t\"location\": {\n\t\t\"type\":\"INTLCITY\",\n\t\t\"country\":\"EG\",\n\t\t\"country_iso3166\":\"EG\",\n\t\t\"country_name\":\"Egypt\",\n\t\t\"state\":\"\",\n\t\t\"city\":\"Wadi El Natroon\",\n\t\t\"tz_short\":\"EET\",\n\t\t\"tz_long\":\"Africa/Cairo\",\n\t\t\"lat\":\"30.000000\",\n\t\t\"lon\":\"30.000000\",\n\t\t\"zip\":\"00000\",\n\t\t\"magic\":\"1\",\n\t\t\"wmo\":\"62357\",\n\t\t\"l\":\"https://stackoverflow.com/q/zmw:00000.1.62357\",\n\t\t\"requesturl\":\"global/stations/62357.html\",\n\t\t\"wuiurl\":\"http://www.wunderground.com/global/stations/62357.html\",\n\t\t\"nearby_weather_stations\": {\n\t\t\"airport\": {\n\t\t\"station\": [\n\t\t{ \"city\":\"Wadi El Natroon\", \"state\":\"\", \"country\":\"Egypt\", \"icao\":\"\", \"lat\":\"30.40250015\", \"lon\":\"30.36333275\" }\n\t\t,{ \"city\":\"Alexandria Borg El Arab\", \"state\":\"\", \"country\":\"EG\", \"icao\":\"HEBA\", \"lat\":\"30.91769981\", \"lon\":\"29.69639969\" }\n\t\t,{ \"city\":\"Alexandria\", \"state\":\"\", \"country\":\"EG\", \"icao\":\"HEAX\", \"lat\":\"31.18166733\", \"lon\":\"29.94638824\" }\n\t\t]\n\t\t}\n\t\t,\n\t\t\"pws\": {\n\t\t\"station\": [\n\t\t]\n\t\t}\n\t\t}\n\t}\n}\n" 

Wie Sie eine Reihe von Zeichen sehen können gibt es, die nicht angenommen werden, dort zu sein. Gibt es eine andere Abfrage, um unformatierten JSON zu erhalten, oder muss ich diesen ganzen Müll analysieren, bevor ich ihn an einen JSON-Parser übergebe? Befinde ich mich in einem Debug-Modus oder so?

Antwort

0

Ich denke, Sie verwenden das Restful für Webdienste und Sie die Codierung des Arrays in Json, wenn Sie den Rest nicht tun Codierung funktioniert es standardmäßig in Json.

+0

oder ich glaube, Sie codieren die Json 2. Mal. –

0

Die Zeichen newline (\ n) und tab (\ t) werden wahrscheinlich von Ihrem Debugger aufgelistet, während die tatsächliche Antwort formatierte Daten enthält (so dass die Zeilenumbrüche als tatsächliche Zeilenumbrüche angezeigt werden). Dies würde für einen JSON-Parser kein Problem darstellen, füttern Sie einfach die Daten dorthin.

0

Hoppla .. Es war ein Gson Problem (oder ein Problem mit meiner Verwendung von Gson), kein Weather Underground Problem. Benötigen Sie zu verwenden:

val jsonObj = JsonParser().parse(it).asJsonObject 

Statt:

val jsonObj = gson.toJsonTree(it) 

Es ist die JSON-String. Der Code ist in Kotlin.