我正在使用java http://json-lib.sourceforge.net的JSON-lib库。
我只想添加看起来像JSON的简单字符串(但我不希望库自动发现它可能是json,只是将其视为字符串)。查看库的源代码,我找不到没有丑陋的hack的方法。
示例:
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的默认行为。
发布于 2010-12-29 02:32:25
如果我理解正确的话,我认为json-lib的独特之处在于它假定传递的字符串需要被解析。其他库通常将其视为要包含的字符串(根据需要转义双引号和反斜杠),即按照您的预期工作。
所以你可以考虑其他的库:我推荐Jackson,Gson也可以工作。
发布于 2010-12-28 23:39:31
json-simple提供了一种JSONObject.escape()方法。
https://stackoverflow.com/questions/4547143
复制相似问题