0

ほぼ100のフィールドでNullPointerExceptionsをチェックするコードが肥大化するのを防ぐために、オブジェクト内のすべての「null」参照を「0」に置き換えたいと思います。ただし、次のコードはそれをまったく行いません。

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");
    }
}

それを正しくコーディングする方法はありますか?

4

2 に答える 2

0

メソッドのJavadocにあるように、 「通常の」値をJSONObject含めることができないため、「通常の」値を含めることができないため、機能しません。nullJSONObject.put(String name, Object value)

値がnullの場合、nameの既存のマッピングはすべて削除されます。

したがって、行の「値」文字列が。String value = vinfo.getString(key)になることはありませんnullJSONObject.NULL代わりに確認する必要があります。

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

その上、私はこの行vinfo.put(key, "0");があなたに与えないかどうかわかりませんConcurrentModificationException

于 2012-05-14T09:32:35.967 に答える
0

String.replaceAll()JSON 文字列に使用して、すべての null 値を 0 に置き換えます。

于 2012-05-14T09:19:25.070 に答える