我試圖將我從Json解析的數據顯示到帶有SimpleAdapter的Listview中。Android JsonArray無法檢索所有值並在ListView中使用SimpleAdapter顯示
我可以顯示除JsonArray中的多個值存在問題之外的所有數據。
JSON數據
{
"57": {
"Steak Doness": [
"well done",
"medium",
"rare"
]
},
"58": {
"Size": [
"small",
"medium",
"large",
"extra large"
]
},
"59": {
"Cooking Method": [
"spicy",
"non-spicy"
]
},
"63": {
"Coldness": [
"with ice",
"without ice"
]
}
}
Java編碼
JSONObject jsonObject = new JSONObject(response);
String get_option_data=jsonObject.getString("option_data");
JSONObject jsonObject1 = new JSONObject(get_option_data);
Iterator<String> iterator = jsonObject1.keys();
while (iterator.hasNext()) {
String oid = iterator.next();
String name_value=jsonObject1.getString(oid);
JSONObject jsonObject2=new JSONObject(name_value);
Iterator<String> iterator1 = jsonObject2.keys();
while (iterator1.hasNext()) {
String name=iterator1.next();
HashMap<String, String> map = new HashMap<>();
map.put("oid",oid);
map.put("name",name);
JSONArray jsonArray=jsonObject2.getJSONArray(name);
int i;
for(i=0;i<jsonArray.length();i++){
map.put("value",jsonArray.getString(i));
}
aList.add(map);
}
}
String[] from = {"oid","name","value"};
int[] to = {R.id.oid,R.id.name,R.id.value};
SimpleAdapter adapter = new SimpleAdapter(option.this, aList, R.layout.option_template, from, to);
ListView listView = (ListView) findViewById(R.id.listview);
listView.setAdapter(adapter);
正如你所看到的,它只能顯示JsonArray的最後一個元素,但不是每一個元素那個JsonArray。任何人都知道什麼是錯的?
到目前爲止它工作正常。顯示所有元素。然後,對於「在你的adpater中,你必須使用split(」,「)創建數組並使用它。」你能爲這部分提供編碼嗎?由於所有的價值都粘在一起,沒有空間 – gosulove
@gosulove:現在檢查 – Jai
真棒!它現在正常工作thx – gosulove