这是我从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解析器之前是否必须解析所有这些垃圾?我是在某种调试模式还是什么?
答案 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。