JSONObject使用Integer创建迭代器

时间:2013-12-02 11:46:04

标签: android json iterator jsonobject

我想使用JSONObject方法迭代keys()。问题是其中一个关键是整数。

Iterator it = json.getJSONObject("body").keys();

keys()方法只从String值创建一个迭代器,当其中一个键是Integer时我得到一个异常。我该怎么做才能解决这个问题?

2 个答案:

答案 0 :(得分:1)

请阅读以下示例

 String s = "{menu:{\"1\":\"sql\", \"2\":\"android\", \"3\":\"mvc\"}}";
JSONObject jObject  = new JSONObject(s);
JSONObject  menu = jObject.getJSONObject("menu");

Map<String,String> map = new HashMap<String,String>();
Iterator iter = menu.keys();
while(iter.hasNext()){
    String key = (String)iter.next();
    String value = menu.getString(key);
    map.put(key,value);
}

答案 1 :(得分:0)

JSON对象成员是键值对,其中键始终是字符串(ref)。如果它是一个数字文字,则JSON无效。您应该修复产生无效JSON的任何内容。