用空字符串Java替换HashMap中的空值

用空字符串Java替换HashMap中的空值,java,Java,我试图用一个空字符串替换HashMap中的所有空值,即example=null to example= 我试图得到的结果是: {0={a=1,b=,c=someString},1={a=2,b=someString,c=}} 我把它弄清楚了。谢谢@iluxa为我指明了正确的方向。我在迭代中使用了相同的map实例。我在外循环中创建了一个新实例,它解决了我的问题 解决方案: public static void main(String[] args) { HashMap<String

我试图用一个空字符串替换HashMap中的所有空值,即example=null to example=

我试图得到的结果是:

{0={a=1,b=,c=someString},1={a=2,b=someString,c=}}

我把它弄清楚了。谢谢@iluxa为我指明了正确的方向。我在迭代中使用了相同的map实例。我在外循环中创建了一个新实例,它解决了我的问题

解决方案:

public static void main(String[] args) {
    HashMap<String, Object> mapOfObjects = new HashMap<String, Object>() {
        {
            put("0", {"a":"1","b":null,"c":"someString"});
            put("1", {"a":"2","b":"someString","c":null});
        }
    }
    mapOfObjects = new ReplaceNullValues().replaceHashMapNullValues(mapOfObjects);
}

public Map <String, Object> replaceHashMapNullValues(Map <String, Object> replaceNullValues) throws JSONException {
    for(int index = 0; index < replaceNullValues.size(); index++){
        Map<String, String> map = new HashMap<String, String>();            

        JSONObject objects = (JSONObject) replaceNullValues.get(Integer.toString(index));
        JSONArray keys = objects.names();

        for(int i = 0; i < keys.length (); ++i){
           String key = keys.getString (i); 
           String value = objects.getString (key);

           if(value.equals("null")){
               value = "";
           }               
           map.put(key, value);            
        }           
        replaceNullValues.replace(Integer.toString(index), newMap);     
    }       
    return replaceNullValues;       
}

Try value==null。null和null不一样。由于您正在检查null,所以不需要使用equals。这是纯Java吗?我看不出{a:1,b:null,c:someString}在HashMap的子类中意味着什么,您在迭代中一直使用相同的map实例。尝试在外部循环中创建新实例。条件应为value==null。null的计算结果为字符串文本“null”@WJS、@MRTJ这不是问题所在,因为string value=objects.getString键正在将null转换为null。因此,value==null将不起作用。我能够得到所需的替换,即{0={a=2,b=someString,c=},1={a=2,b=someString,c=}},但键0和键1是相同的。也不是纯Java-如何在不强制转换的情况下将映射分配给HashMap?
{0={a=1,b=,c=someString},1={a=2,b=someString,c=}}
public static void main(String[] args) {
    HashMap<String, Object> mapOfObjects = new HashMap<String, Object>() {
        {
            put("0", {"a":"1","b":null,"c":"someString"});
            put("1", {"a":"2","b":"someString","c":null});
        }
    }
    mapOfObjects = new ReplaceNullValues().replaceHashMapNullValues(mapOfObjects);
}

public Map <String, Object> replaceHashMapNullValues(Map <String, Object> replaceNullValues) throws JSONException {
    for(int index = 0; index < replaceNullValues.size(); index++){
        Map<String, String> map = new HashMap<String, String>();            

        JSONObject objects = (JSONObject) replaceNullValues.get(Integer.toString(index));
        JSONArray keys = objects.names();

        for(int i = 0; i < keys.length (); ++i){
           String key = keys.getString (i); 
           String value = objects.getString (key);

           if(value.equals("null")){
               value = "";
           }               
           map.put(key, value);            
        }           
        replaceNullValues.replace(Integer.toString(index), newMap);     
    }       
    return replaceNullValues;       
}