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()
方法。