6

我正在为 java http://json-lib.sourceforge.net使用 JSON-lib 库

我只想添加看起来像 JSON 的简单字符串(但我不希望库自动找出它可能是 json 并且只是将其视为字符串)。调查图书馆的来源,如果没有丑陋的黑客,我找不到办法。

例子:

JSONObject object = new JSONObject();
String chatMessageFromUser = "{\"dont\":\"treat it as json\"}";
object.put("myString", chatMessageFromUser);

object.toString()会给我们{"myString":{"dont":"treat it as json"}}

我只想拥有{"myString":"{\"dont\":\"treat it as json\"}"}

如何在不修改源代码的情况下实现它?我正在使用这段代码作为来自用户的聊天消息的传输 - 所以它对于普通的聊天消息可以正常工作,但是当用户将 JSON 格式作为消息输入时,由于这里描述的 JSON-lib 的默认行为,它会破坏它。

4

2 回答 2

5

如果我正确理解了问题,我认为 json-lib 的独特之处在于它假设传递的字符串需要被解析。其他库通常将其视为要包含的字符串(根据需要转义双引号和反斜杠),即按您的预期工作。

因此,您可能需要考虑其他库:我会推荐Jackson, Gson 也可以。

于 2010-12-28T18:32:25.373 回答
4

json-simple提供了一种JSONObject.escape()方法。

于 2010-12-28T15:39:30.503 回答