JSON-lib转义/保留字符串

我在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的默认行为,它将打破它。

如果我正确地理解了问题,我认为json-lib在假设传递的String需要被解析时是独一无二的。 其他lib通常将其视为要包含的String(必要时转义双引号和反斜杠),即按预期工作。

所以你可能想考虑其他图书馆:我会推荐Jackson ,Gson也可以。

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