gpt4 book ai didi

java - 在Android中解析JSON数据

转载 作者:行者123 更新时间:2023-12-01 06:13:29 25 4
gpt4 key购买 nike

我有以下格式的 JSON 数据,

[
{
"name": "France",
"date_time": "2015-05-17 19:59:00",
"dewpoint": "17",
"air_temp": "10.8"
},
{
"name": "England",
"date_time": "2015-05-17 19:58:48",
"dewpoint": "13",
"air_temp": "10.6"
},
{
"name": "Ireland",
"date_time": "2015-05-17 19:58:50",
"dewpoint": "15",
"air_temp": "11.1"
}
]

我已经为 Android 应用程序设置了 Google map ,因此我在两个 Activity (GoogleMaps.java 和 WeatherInfo.java)之间传递了名称值,现在当我单击 Google map 中的一个点时,它将传递名称为WeatherInfo.java,我想获取该名称的天气数据。

例如:我单击 map 中的法国点,WeatherInfo.class 将获取名称为“法国”并打印出该点的“日期时间、露点、空气温度”。

我的问题是如何获取仅针对我在 map 中单击的点解析的 Json 数据?任何人都可以查看我的 WeatherInfo.java 类中的 for 循环吗?

WeatherInfo.java

protected Void doInBackground(Void... arg0) {
// Creating service handler class instance
ServiceHandler sh = new ServiceHandler();

// Making a request to url and getting response
String jsonStr = sh.makeServiceCall(url, ServiceHandler.GET);

Log.d("Response: ", "> " + jsonStr);

if (jsonStr != null) {
try {
JSONObject jsonObj = new JSONObject(jsonStr);

// Getting JSON Array node
contacts = jsonObj.getJSONArray("");

// looping through All Contacts
for (int i = 0; i < contacts.length(); i++) {
JSONObject c = contacts.getJSONObject(i);


String name = c.getString(TAG_NAME);
String date_time = c.getString(TAG_DATE);
String temp = c.getString(TAG_TEMP);
String dewpoint = c.getString(TAG_DEWPOINT);

// tmp hashmap for single contact
HashMap<String, String> contact = new HashMap<String, String>();

// adding each child node to HashMap key => value
contact.put(TAG_NAME, name);
contact.put(TAG_DATE, date_time);
contact.put(TAG_TEMP, temp);
contact.put(TAG_DEWPOINT, dewpoint);

// adding contact to contact list
contactList.add(contact);
}
} catch (JSONException e) {
e.printStackTrace();
}
} else {
Log.e("ServiceHandler", "Couldn't get any data from the url");
}

return null;
}

最佳答案

JSONArray array = (JSONArray)new JSONTokener(jsonStr).nextValue();

for(int i = 0; i<array.length(); i++){
JSONObject jsonObject = array.getJSONObject(i);
String name = jsonObject.getString("name");
String date = jsonObject.getString("date_time");
...
}

或者

JSONArray array = (JSONArray)new JSONTokener(jsonStr).nextValue();

for(int i = 0; i<array.length(); i++) {
JSONObject jsonObject = array.getJSONObject(i);
City city = new City();
city.name = jsonObject.getString("name");
...
}

关于java - 在Android中解析JSON数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30291718/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com