JSON-lib转义/保留字符串

Mik*_*ium 5 java json 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);
Run Code Online (Sandbox Code Playgroud)

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

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

如何在不修改源代码的情况下实现它?我正在使用这段代码作为来自用户的聊天消息的传输 - 因此它适用于正常的聊天消息,但是当用户将输入JSON格式作为消息时,由于此处描述的JSON-lib的默认行为,它将破坏它.

Sta*_*Man 5

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

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


ast*_*asr 4

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