Weather Underground API返回带有格式化字符的JSON(很多\ n \ t等)。有没有办法从它们那里获取未格式化的JSON?

时间:2016-04-24 13:23:30

标签: json getjson weather-api

这是我从Weather Underground获得的回复:

"\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\":\"/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"

正如你所看到的那样,有许多角色不应该存在。是否有不同的查询来获取未格式化的JSON,或者在将其交给JSON解析器之前是否必须解析所有这些垃圾?我是在某种调试模式还是什么?

3 个答案:

答案 0 :(得分:0)

我认为你正在使用Restful for web services并在Json中对数组进行编码,如果你使用其余部分进行编码它默认在Json中工作。

答案 1 :(得分:0)

新行(\ n)和制表符(\ t)字符可能由调试器列出,而实际响应包含格式化数据(因此换行符显示为实际换行符)。这不会给JSON解析器带来任何问题,只需将数据提供给它。

答案 2 :(得分:0)

哎呀..这是一个Gson问题(或者我使用Gson的问题),而不是Weather Underground问题。需要使用:

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

而不是:

val jsonObj = gson.toJsonTree(it)

这是JSON字符串。代码在Kotlin。