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 回答