JSONObject中的更新元素

时间:2012-05-14 09:14:41

标签: android nullpointerexception arrays

为了避免我的代码在几百个字段的每个机会检查NullPointerExceptions时膨胀,我想用“0”替换对象中的所有“null”引用。但是,以下代码根本不执行此操作。

private JSONObject vinfo;
Iterator iter = vinfo.keys();
while(iter.hasNext()){
    String key = (String)iter.next();
    String value = vinfo.getString(key);
    if (value==null){
       vinfo.put(key, "0");
    }
}

知道如何正确编码吗?

2 个答案:

答案 0 :(得分:0)

使用String.replaceAll()到您的JSON字符串,将所有空值替换为0。

答案 1 :(得分:0)

它不起作用,因为您的JSONObject不能包含“普通”null值,因为您无法将它们放入其中,因为JSONObject.put(String name, Object value)方法的Javadoc说:

  

如果值为null,则删除名称的任何现有映射。

因此String value = vinfo.getString(key)行的“值”字符串永远不会是null。您应该检查JSONObject.NULL

String key = (String)iter.next();
if (vinfo.isNull(key)) {
    vinfo.put(key, "0");
}

此外,我不确定这一行:vinfo.put(key, "0");是否会给你ConcurrentModificationException