【发布时间】:2013-02-22 16:50:52
【问题描述】:
您好,我想在 JSONObject 中创建一个包含所有键的数组。我的理解(如果我错了,请纠正我)是我需要将 JSONObject 转换为 Map,然后从中创建一个 Array 有人知道该怎么做吗?
【问题讨论】:
标签: android
您好,我想在 JSONObject 中创建一个包含所有键的数组。我的理解(如果我错了,请纠正我)是我需要将 JSONObject 转换为 Map,然后从中创建一个 Array 有人知道该怎么做吗?
【问题讨论】:
标签: android
无需将 JSONObject 转换为 Map 然后创建一个键数组,只需使用 JSONObject.names() 获取 JsonArray 中的所有键,然后将其转换为 Array 或 ArrayList。示例:
JSONObject json = new JSONObject("json object string");
JSONArray namearray=json.names(); //<<< get all keys in JSONArray
【讨论】:
使用 [keys()][1] 迭代器遍历所有属性,并为每个属性调用 [get()][2]。
Iterator<String> iter = json.keys();
while (iter.hasNext()) {
String key = iter.next();
try {
Object value = json.get(key);
} catch (JSONException e) {
// Something went wrong!
}
}
【讨论】:
试试这个:
ArrayList<String> list = new ArrayList<String>();
JSONArray jsonArray = (JSONArray)jsonObject;
if (jsonArray != null) {
int len = jsonArray.length();
for (int i=0;i<len;i++){
list.add(jsonArray.get(i).toString());
}
}
String[] array = list.toArray(new String[list.size()]);
【讨论】: