从返回openweathermap JSON数据
问题描述:
访问雨这是我JSON
,从返回openweathermap JSON数据
{
"city": {
"id": 2961297,
"name": "Swords",
"coord": {
"lon": -6.21806,
"lat": 53.459721
},
"country": "IE",
"population": 0
},
"cod": "200",
"message": 0.3535,
"cnt": 1,
"list": [
{
"dt": 1481025600,
"temp": {
"day": 284.68,
"min": 284.68,
"max": 285.36,
"night": 285.36,
"eve": 284.8,
"morn": 284.68
},
"pressure": 1028.26,
"humidity": 95,
"weather": [
{
"id": 500,
"main": "Rain",
"description": "light rain",
"icon": "10d"
}
],
"speed": 9.01,
"deg": 186,
"clouds": 92,
"rain": 0.5
}
]
}
我试图访问雨值“雨”:0.5如被看见在返回JSON
数据上面我不确定究竟如何做这是因为我没有太多的使用JSON
数据的经验。
这是我的代码,
JSONObject topLevel = new JSONObject(builder.toString());
JSONArray ListArray = topLevel.getJSONArray("list");
weather = String.valueOf(ListArray);
for(int x = 0;x < ListArray.length();x++) {
JSONObject myObj = ListArray.getJSONObject(x);
myObj.getInt("rain");
Log.d("TODAYS Rain"+rain,"");
//System.out.Print("Current Weather" +id+main+icon+dscription+rain);
}
任何帮助是极大的赞赏。
答
JSONObject topLevel = new JSONObject(builder.toString());
JSONArray listArray = topLevel.getJSONArray("list");
JSONObject firstObject = (JSONObject)listArray.get(0);
Double rain = firstObject.getDouble("rain");
System.out.println("TODAYs rain :" + rain);
}
答
解析Json最简单的方法是使用将Json映射到对象实例的POJO类。
您可以定义类结构并将其填入检索的数据。
有本网站对同一主题的指南:作为价值http://www.ssaurel.com/blog/learn-how-to-parse-json-in-android-with-gson/
答
JSONObject topLevel = new JSONObject(builder.toString());
JSONArray ListArray = topLevel.getJSONArray("list");
weather = String.valueOf(ListArray);
for(int x = 0;x < ListArray.length();x++) {
JSONObject myObj = ListArray.getJSONObject(x);
myObj.getDouble("rain");
Log.d("TODAYS Rain"+rain,"");
//System.out.Print("Current Weather" +id+main+icon+dscription+rain);
}
你只需要使用myobj.getDouble(“雨”),而不是myobj.getInt(“雨”)雨不是整数。
什么现在进入你的日志? –
这是从JSON数据返回的所有内容,但告诉雨不存在,当我试图将它放到一个textfield我已经修复它谢谢 –