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());
}
}
しかしとき私は配列のサイズを確認します、それは空です。 誰かが助けてくれると思いますか?ありがとう
@afterが変更されても、まだ配列のサイズは0です。だから、私はそれがトーストで止めるのWHERE検索してみましたし、私が見つかりました:
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>();
私はまだあなたのコードが動作しない理由も考えて。しかし、json.orgライブラリはすべて無意味JSONException
を投げるそのget<Type>
方法で不鈍角である):)あなたの助けのために
それはJSONValueでエラーを持っているが(このクラスを持っていないことに思える)とjArrayで(オブジェクトobj:jArray)のために「のみのアレイまたはjava.lang.Iterableのインスタンスを反復することができます」 – Yoo
@デイジー - はい、私が言ったように、まずあなたが現在使っているjson.orgライブラリを取り除き、それを[simple-json](http://code.google.com/p/json-simple /)バージョンです。そして、(あなたがEclipseを使っていると仮定して)あなたの輸入量を修正するために 'Ctrl + Shift + O'を実行すればいいです。 – aroth
申し訳ありませんが、jArray for(Object obj:jArray)はエラーを返します。 – Yoo