从 json 中获取很多值
我需要获取我的 android 的纬度和经度,它有很多这样的值:
我尝试使用此方法从 JSON 获取值:
ArrayList<String> longitude;
ArrayList<String> latitude;
public void parseJson(String result) {
try {
JSONArray jArray = new JSONArray(result);
for (int i = 0; i < jArray.length(); i++) {
JSONObject jo = jArray.getJSONObject(i);
latitude.add(jo.getString("Latitude").toString());
longitude.add(jo.getString("Longitude").toString());
}
} catch (JSONException e) {
Log.e("log_tag", "Error parsing data " + e.toString());
}
}
但是当我检查数组的大小时,它是空的。 任何人都可以帮助或建议我的错误吗?谢谢
@修改后,我仍然得到0大小的数组。所以,我尝试搜索 Toast 的停靠站,然后我发现:
public void parseJson(String result) throws JSONException {
longitude = new ArrayList<String>();
latitude = new ArrayList<String>();
JSONArray jArray = (JSONArray)JSONValue.parse(result);
for (Object obj: jArray) {
JSONObject jo = (JSONObject)obj;
//here is when I toast it's got nothing
latitude.add(jo.get("Latitude").toString());
longitude.add(jo.get("Longitude").toString());
}
}
@aroth 我得到了答案!我回到使用我的方式是这样的:
public void parseJson(String result) throws JSONException {
longitude = new ArrayList<String>();
latitude = new ArrayList<String>();
JSONArray jArray = new JSONArray(result);
for (int i = 0; i < jArray.length(); i++) {
JSONObject jo = jArray.getJSONObject(i);
latitude.add(jo.getString("Latitude").toString());
longitude.add(jo.getString("Longitude").toString());
}
我想我忘记声明这些:
longitude = new ArrayList<String>();
latitude = new ArrayList<String>();
我仍然不知道为什么你的代码不起作用。不过,非常感谢您的帮助:))
I need to get latitude and longitude to my android, it got many values like this :
I tried this to get values from JSON :
ArrayList<String> longitude;
ArrayList<String> latitude;
public void parseJson(String result) {
try {
JSONArray jArray = new JSONArray(result);
for (int i = 0; i < jArray.length(); i++) {
JSONObject jo = jArray.getJSONObject(i);
latitude.add(jo.getString("Latitude").toString());
longitude.add(jo.getString("Longitude").toString());
}
} catch (JSONException e) {
Log.e("log_tag", "Error parsing data " + e.toString());
}
}
But When I check the size of array, it's empty.
Anyone can help or suggest my wrong ? Thanks
@after modified,I still got 0 size of array. So,I tried to search where it's stop by Toast then I found :
public void parseJson(String result) throws JSONException {
longitude = new ArrayList<String>();
latitude = new ArrayList<String>();
JSONArray jArray = (JSONArray)JSONValue.parse(result);
for (Object obj: jArray) {
JSONObject jo = (JSONObject)obj;
//here is when I toast it's got nothing
latitude.add(jo.get("Latitude").toString());
longitude.add(jo.get("Longitude").toString());
}
}
@aroth I got an answer!! I back to use my way like this :
public void parseJson(String result) throws JSONException {
longitude = new ArrayList<String>();
latitude = new ArrayList<String>();
JSONArray jArray = new JSONArray(result);
for (int i = 0; i < jArray.length(); i++) {
JSONObject jo = jArray.getJSONObject(i);
latitude.add(jo.getString("Latitude").toString());
longitude.add(jo.getString("Longitude").toString());
}
I think I forgot declare these:
longitude = new ArrayList<String>();
latitude = new ArrayList<String>();
I still no idea why your code is not work. However, thank a lot for your help :))
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
json.org 库的
get
方法毫无必要地迟钝,这些方法都毫无意义地抛出JSONException
,我建议切换到 simple-json。然后你可以这样做:假设你的输入 JSON 与你的示例片段匹配,应该可以工作。
The json.org library is needlessly obtuse with its
get<Type>
methods that all pointlessly throwJSONException
, I would recommend switching to simple-json. Then you could do:Should work, assuming your input JSON matches your example snippet.
尝试使用 gson 库。它紧凑且快速。
https://sites.google.com/site/gson/gson-user-guide
try using gson library. It's compact and fast.
https://sites.google.com/site/gson/gson-user-guide