2

我在用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, false是关键字,这是JSONObject将其转换为字符串时的处理方式。我试过 obj.put("id", "\"null\"");了 - 结果还是一样

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

有什么帮助吗?

4

2 回答 2

1

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

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

我正在使用这 2 个 JSON 库,我会向您推荐:

  1. json-简单
  2. json-智能

这两个库都按照您的实现的要求使用字符串“null”值工作。我用示例代码测试了两者:

JSONObject obj = new JSONObject();
obj.put("test", "null");

// Both libraries print out {"test":"null"}
System.out.println(obj.toJSONString());    
于 2012-06-07T17:41:17.387 回答
-2

使用 JsonWriter 类方法 WriteNull。

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

于 2012-06-07T17:41:55.197 回答