-2

JSON代码(test2)供参考

{
    "forecast": {
        "txt_forecast": {
            "date": "8: 00AMMST",
            "forecastday": [
                {
                    "period": 0,
                    "icon": "partlycloudy",
                    "icon_url": "http: //icons-ak.wxug.com/i/c/k/partlycloudy.gif",
                    "title": "Thursday",
                    "fcttext": "Partlycloudy.Highof63F.Windslessthan5mph.",
                    "fcttext_metric": "Partlycloudy.Highof17C.Windslessthan5km/h.",
                    "pop": "0"
                }
            ]
        }
    }
}

Java 代码供参考

     Object obj = parser.parse(new FileReader("C:\\Users\\User\\Desktop\\test2.json"));

     JSONObject jsonObject = (JSONObject) obj;
     String name = (String) jsonObject.get("forecast").toString();
     System.out.println(name);

当我使用这个 java 代码时,它会打印出整个“预测”(IE,它会打印出日期、期间、图标、标题等)。我的问题是,如何在不打印出所有代码的情况下打印出 JSON 代码的特定部分。我正在使用 JSON-SIMPLE,谢谢。

4

1 回答 1

1
Object obj = parser.parse(new FileReader("C:\\Users\\User\\Desktop\\test2.json"));

JSONObject jsonObject = (JSONObject) obj;
JSONObject forecast = jsonObject.get("forecast");
JSONObject txt__forecast = jsonObject.get("txt_forecast");
JSONArray forecastday = jsonObject.getJSONArray("forecastday");
JSONObject forecastIdx0 = forecastday.get(0);
int period = forecastIdx0.getInt("period");
Stting title = forecastIdx0.getString("title");

通常,您不会在每次调用时都存储它们。我这样做只是为了显示每个 get 调用返回的内容。如您所知,这非常冗长。如果您使用 JSON 的方式不仅仅是一种简单的方式,那么使用对象反序列化库(例如 GSON)可以让您直接反序列化为预定义的对象,这将大大受益。

有关参考,请参阅http://www.json.org/javadoc/org/json/JSONObject.html它是官方的 Json 库,用于对 json 进行低级操作和遍历。它无处不在,被所有与 json 交互的东西所使用。

于 2013-11-14T21:31:19.703 回答