4

您好我想在 JSONObject 中创建一个包含所有键的数组。我的理解(如果我错了,请纠正我)是我需要将 JSONObject 转换为 Map,然后从中创建一个 Array 有人知道该怎么做吗?

4

3 回答 3

13

无需转换 JSONObject为 Map 然后创建一个键数组,只需使用JSONObject.names()获取 JsonArray 中的所有键,然后将其转换为 Array 或 ArrayList。例子:

JSONObject  json = new JSONObject("json object string");
JSONArray namearray=json.names();  //<<< get all keys in JSONArray
于 2013-02-22T16:58:07.017 回答
1

使用 [ 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!
    }
}
于 2016-09-09T08:11:47.107 回答
0

试试这个:

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()]);
于 2013-02-22T16:59:05.487 回答