我在从android解析位于互联网上的json文件时遇到了一些困难。 以下是Json文件的内容:
{
"cod": "200",
"message": 0.0803,
"city": {
"id": 2643743,
"name": "London",
"coord": {
"lon": -0.12574,
"lat": 51.50853
},
"country": "GB",
"population": 1000000
},
"cnt": 2,
"list": [
{
"dt": 1389182400,
"temp": {
"day": 9.72,
"min": 9.72,
"max": 11.25,
"night": 11.25,
"eve": 9.72,
"morn": 9.72
},
"pressure": 1016.8,
"humidity": 95,
"weather": [
{
"id": 500,
"main": "Rain",
"description": "light rain",
"icon": "10d"
}
],
"speed": 6,
"deg": 162,
"clouds": 80,
"rain": 2
},
{
"dt": 1389268800,
"temp": {
"day": 9.75,
"min": 4.56,
"max": 11.22,
"night": 4.56,
"eve": 6.76,
"morn": 11.22
},
"pressure": 1006.76,
"humidity": 95,
"weather": [
{
"id": 500,
"main": "Rain",
"description": "light rain",
"icon": "10d"
}
],
"speed": 9.16,
"deg": 267,
"clouds": 44,
"rain": 0.5
}
]
}
我想要一些帮助,因为我不知道如何解析列表。我一直在让应用程序崩溃。
答案 0 :(得分:1)
你必须给我们更多的帮助:你有崩溃日志吗?你有什么尝试?
jsonlint.com确认您的JSON有效。如果我理解您的意图,您可以将其反序列化为JSONObject
,如下所示:
JSONObject obj = new JSONObject(myString);
完成此操作后,您可以按如下方式访问值:
double speed = obj.getJSONArray("list")
.getJSONObject(2)
.getDouble("speed");
答案 1 :(得分:0)
从字符串中创建一个JSON对象,然后只调用您正在寻找的部分的get方法。例如:
JSONObject jsonObject = new JSONObject(jsonString);
Date myDOB = new Date(jsonObject.getLong(DOB_KEY));
对于进一步嵌入的部分,您可以调用getJSONObject(key),然后单独解析该部分。例如:
JSONObject location = jsonObject.getJSONObject(LOCATION_KEY);
myLocation = new Location("");
myLocation.setLatitude(location.getDouble(LOCATION_LATITUDE_KEY));
myLocation.setLongitude(location.getDouble(LOCATION_LONGITUDE_KEY));