您可以
Bundle#keySet()用来获取捆绑软件包含的密钥列表。然后,您可以遍历这些键,并将每个键值对添加到中
JSONObject:
JSonObject json = new JSonObject();Set<String> keys = bundle.keySet();for (String key : keys) { try { // json.put(key, bundle.get(key)); see edit below json.put(key, JSONObject.wrap(bundle.get(key))); } catch(JSonException e) { //Handle exception here }}请注意,这
JSONObject#put将需要您抓住一个
JSONException。
编辑:
有人指出,以前的代码不能很好地处理
Collection和
Map键入。如果您使用的是API
19或更高版本,那么有一种
JSONObject#wrap对您很重要的方法将有所帮助。从文档:
如有必要,包装一个物体。如果对象为null,则返回NULL对象。如果它是数组或集合,则将其包装在JSONArray中。如果是地图,则将其包装在JSONObject中。如果它是标准属性(Double,String等),则它已经被包装。否则,如果它来自java软件包之一,则将其转换为字符串。如果没有,请尝试将其包装在JSONObject中。如果包装失败,则返回null。



