【发布时间】:2019-01-31 23:10:30
【问题描述】:
我正在制作一个安卓应用来控制我的空调,在我的应用中我想知道外面的温度。我有一个指向当地天气预报提供商的 json 链接,它具有我正在寻找的温度值。
我的问题是,当温度值位于多个数组中时,我不知道如何获取它。我要找的对象在“timeSeries”->“parameters”->里面,名字是“t”,就是我想要的那个“值”(它是摄氏温度)。
我已经尝试了几种修复它的方法,但显然我不在那里 :)。我插入了我的代码的一部分,这样你就可以看到我正在尝试什么。
@Override
public void onResponse(Call call, Response response) throws IOException {
String forecastData;
try {
String jsonData = response.body().string();
Log.v(TAG, jsonData);
if (response.isSuccessful()) {
forecastData = getCurrentDetails(jsonData);
}
} catch (IOException e) {
Log.e(TAG, "IO Exception caught: ", e);
} catch (JSONException e) {
Log.e(TAG, "JSON Exception caught:", e);
}
}
private String getCurrentDetails(String jsonData) throws JSONException {
JSONObject forecast = new JSONObject(jsonData);
JSONArray currently = forecast.getJSONArray("timeSeries");
String currentTemp = "";
return currentTemp;
}
});
它在 getCurrentDetails 中,我想获取温度然后返回它。
【问题讨论】:
-
您应该使用 Gson 库,它允许您将 JSON 反序列化为复杂对象,并通过公开的属性简单地访问您需要的值。在此处查看接受的答案:stackoverflow.com/a/38136089/2754727
-
谢谢大家的回答,我一定会看看的!