0

次の構造の JSON があります。

{"cit": [
    "ALL",
    "Aceh Barat",
    "Aceh Besar",
    "Aceh Jaya",
    "Aceh Selatan",
    "Aceh Tengah",
    "Aceh Timur",
    "Aceh Utara"]}

私はこのように私のjsonを解析しようとしました:

JSONObject jsonObject = new JSONObject(result);
JSONArray city=jsonObject.getJSONArray("cit");

for (int j=0; j < city.length(); j++){
    JSONObject cit = city.getJSONObject(j);
    String kot = cit.toString(j);

    kota.add(kot);
}

実行後:

ArrayAdapter<String> SpinnerKota = new ArrayAdapter<String>(Pencarian.this, android.R.layout.simple_list_item_1, kota);
spin_kota.setAdapter(SpinnerKota);  

私のコードに何か問題がありますか? 誰かが私の問題を解決するのを手伝ってくれることを願っています。

4

4 に答える 4

2
"cit": [ // json array cit
"ALL",  // index 0 is ALL

また、json 配列 cit 内に json オブジェクトはありません。したがって、これは必要ありませんJSONObject cit = city.getJSONObject(j)

変化する

  String kot = cit.toString(j);

  String kot =  (String) city.get(j);

以下を使用してください

      JSONObject jsonObject = new JSONObject("myjson string");
      JSONArray city=jsonObject.getJSONArray("cit");
      for(int i=0;i<city.length();i++)
      {
            String cities = (String) city.get(i);
            Log.i("All Cities",cities);
            kota.add(cities);
      }
于 2013-10-14T05:02:05.330 に答える
1

このようにしてください

    JSONArray json = jParser.getJSONFromUrl(URL);

JSONObject c = json.getJSONObject(0);

JSONArray city  = c.getJSONArray("cit");    

for (int j=0; j < city.length(); j++){

    String kot = cit.get(j);

    kota.add(kot);
}
于 2013-10-14T05:07:25.877 に答える
0
Object obj = yourJsonResult;
JSONObject jsonObject = (JSONObject) obj;
JSONArray msg = (JSONArray) jsonObject.get("cit");
Iterator<String> iterator = msg.iterator();

while (iterator.hasNext()) {
    System.out.println(iterator.next());
}
于 2013-10-14T04:37:50.507 に答える
0

これはテストされている次のコードのように実行できます

String jsonSource="{'cit': ['ALL','Aceh Barat','Aceh Besar','Aceh Jaya','Aceh Selatan','Aceh Tengah','Aceh Timur','Aceh Utara']}";
    try {
        JSONObject jsonObject=new JSONObject(jsonSource);
        JSONArray jsonArray=jsonObject.getJSONArray("cit");         
        int length = jsonArray.length();
        String [] cities = new String [length];
        if (length > 0) {
            for (int i = 0; i < length; i++) {
                cities[i] = jsonArray.getString(i);
            }
        }
        //to check we can print our string array
        for (int i = 0; i < cities.length; i++) {
            Log.d("JSON parsing ",cities[i]);               
        }
    } catch (JSONException e) {
        e.printStackTrace();
    }
于 2013-10-14T05:00:41.400 に答える