我有一个来自必须放入 JSON 的数据库的字符串值,但该值可以包含单引号和双引号。听起来很容易,对吧?好吧,显然不在 Java 1.4.2 中。不要让我开始为什么它必须是 1.4.2,我从另一个开发人员那里继承了这个,由于我无法控制的因素,我们还不能更新这个项目。:)
所以,我已经尝试了所有这些(还有很多其他的只是为了看看结果):
"sample user's string".replaceAll("'", "\'") // returns "sample user's string"
"sample user's string".replaceAll("'", "\\'") // returns "sample user's string"
"sample user's string".replaceAll("'", "\\\'") // returns "sample user's string"
"sample user's string".replaceAll("'", "\\\\'") // returns "sample user\\'s string"
"sample user's string".replaceAll("'", "%%") // returns "sample user%%s string"
我想要的只是sample user\'s string
,我做错了什么?太糟糕了 1.4.2 没有 String.replace(String,String) 函数。
编辑:我们正在使用json-simple
JSON 库,我正在查看结果 JSON 字符串中上述命令的输出。我添加了额外的调试信息以在 JSON 输出之前查看值,看起来上面的命令确实有效,但json-simple
库正在剥离转义字符。
所以,我看到的是:
"sample user's string".replaceAll("'", "\\\\'") // sample user\'s string
myJSONObject.put("value", "sample user's string".replaceAll("'", "\\\\'")) // sample user\\'s string"
myJSONObject.put("value", "sample user's string") // sample user's string
所以看起来图书馆并没有像预期的那样完成它的工作。有没有使用过json-simple
的人知道解决方法?