如何使JSONObject忽略' null'并将其打印为文字null

时间:2012-06-07 17:18:32

标签: java json

我正在使用net.sf.json.JSONObject

JSONObject obj = new JSONObject();
obj.put("id", "null");
System.out.println(obj.toString());

输出

{"id":null}

我希望null在输出中引用为文字"null"

{"id":"null"}

由于null, true, falseJSONObject在将其转换为字符串时对待它的关键字。我试过了 obj.put("id", "\"null\""); - 结果仍然相同

我们有一些遗留代码,如果我可以将其作为文字打印null而不是使其成为json null,那么它将很容易流入。

任何帮助?

2 个答案:

答案 0 :(得分:1)

看起来这是您正在使用的JSON库的实现的错误。

一个简单的解决方案是切换到实际工作的JSON库。

我正在使用这两个JSON库,我建议你这样做:

  1. json-simple
  2. json-smart
  3. 这两个库都按照您的实现的要求使用String“null”值。我用示例代码测试了两个:

    JSONObject obj = new JSONObject();
    obj.put("test", "null");
    
    // Both libraries print out {"test":"null"}
    System.out.println(obj.toJSONString());    
    

答案 1 :(得分:-2)

使用JsonWriter类方法WriteNull。

参考:http://msdn.microsoft.com/en-us/library/bb299886.aspx