我正在使用net.sf.json库并使用它来解析我的refMap,如:
Map<String, Group> myMap = new HashMap<String,Group>();
myMap = this.getGroupValues();
JSONObject jsonObj = new JSONObject();
jsonObj.putAll(refMap);
File jsonFile = new File("./TempJson.txt");
FileWriter writer = new FileWriter(jsonFile);
fileWriter.write(jsonObj.toString());
我的Group类定义为:
class Group {
Double val;
Integer num;
Section sectionObj;
//..getters & setters
}
问题 this.getGroupValues()
返回一些Group对象,其中 val / num (包装类)值为&#39; null&#39;然后JsonObject解析器将其转换为0,如:"val":0,"num":0
如果sectionObj
为null,则解析器将其保持为空"sectionObj":null
如何在json文件中获取包装类对象的空值?
答案 0 :(得分:0)
我建议使用不同的JSON库。例如,GSON将从序列化的JSON文本中留下null
个值。当GSON对其进行反序列化时,这些缺失值将在新对象中设置为null
。
考虑这个例子:
public class Main {
public static void main(String[] args) {
Gson gson = new Gson();
final String json = gson.toJson(new Group());
System.out.println(json);
Group g = gson.fromJson(json, Group.class);
System.out.println(g);
}
public static class Group {
Double val;
Integer num;
Section sectionObj;
// Getters and setters...
@Override
public String toString() {
return "val: '" + val + "' num: '" + num
+ "' sectionObj: '" + sectionObj + "'";
}
}
public static class Section {}
}
输出以下内容:
{} val: 'null' num: 'null' sectionObj: 'null'