用空字符串Java替换HashMap中的空值
我试图用一个空字符串替换HashMap中的所有空值,即example=null to example= 我试图得到的结果是:用空字符串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
{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;
}