解析 YahooWeather JSON 响应

Parse YahooWeather JSON response

我尝试制作一个简单的天气应用程序,为此我使用了 YahooWeather api。所以我得到这样的回复:

/**/yqlCallback({
    "query": {
        "count": 3,
        "results": {
            "channel": [{
                "item": {
                    "pubDate": "Fri, 16 Jan 2015 11:00 am EET",
                    "condition": {
                        "temp": "1",
                        "text": "Cloudy"
                    },
                }
            },
            {
                "item": {
                    "title": "1",

                }
            },
            {
                "item": {
                    "title": "2",

                }

            }]
        }
    }
});

我需要的唯一数据是 pubDate、temp 和文本。所以这就是我尝试获取这些值的方法。

    JSONObject main = json.getJSONObject("query").getJSONObject("result").getJSONArray("channel")
    .getJSONObject(0);
    JSONObject details = main.getJSONObject("condition");
String t1 = details.getString("text");
String t2 = details.getString("temp");
String t3 = main.getString("pubDate");

这给了我这个错误:在 JSON 数据中找不到一个或多个字段。

当前 json 没有 JSONObjectresult 键一起出现。使用 results 而不是 resultquery 中获取 JSONObejct JSONObject:

JSONObject main = json.getJSONObject("query").
                getJSONObject("results").getJSONArray("channel");
JSONObject items = main.getJSONObject("item");
JSONObject details = items.getJSONObject("condition");
String t1 = details.getString("text");
String t2 = details.getString("temp");

问题是我需要在 .getJSONArray("channel").getJSONObject(0).getJsSONObject("item"); 的末尾添加 无论如何,谢谢。