java - 在 JSONObject 中填充引号

标签 java android json

我正在构建一个 JSON 字符串以发送到我的网络服务。由于其中一个 fragment 是用户输入的,因此有可能使用双引号。我正在尝试通过转义来解决问题。

String strValue = "height of 6\"";
JSONObject json = new JSONObject();
json.put("key", strValue.replaceAll("\"","\\\""));

这里的问题是当我执行 json.toString() 时,我得到了 3 个斜杠。

例如:

{"key","height of 6\\\""}

如果我不尝试进行任何替换,json.toString() 会给我损坏的 json。

例如:

{"key", "height of 6""}

我怎样才能正确地做到这一点?

注意:当我的网站保存这个值并显示时,显示的是height of 6\"

更新:

看来罪魁祸首是 json.toString()

当我调用 replaceAll 方法时,它——正确地——只转义了双引号。 json.toString() 似乎转义了斜线。要解决此问题,我必须执行 json.toString().replace("\\\\", "")。这就引出了一个问题:到底为什么 JSONObject 会转义斜线而不是双引号?????

最佳答案

看来罪魁祸首是 json.toString()

当我调用 replaceAll 方法时,它——正确地——只转义了双引号。 json.toString() 似乎转义了斜线。要解决此问题,我必须执行 json.toString().replace("\\\\", "")

这引出了一个问题:到底为什么 JSONObject 转义斜杠而不转义双引号?????

关于java - 在 JSONObject 中填充引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13420115/

相关文章:

javascript - JSON/JQUERY - ajax post,如何在成功函数中处理 XML 数据

java - java中如何将list数据转成json

android - 来自 Android 的 OpenCV JNI 上的 SIGSEGV

c# - 如何构建一个类来反序列化以下 Json?

java - 在视频中看到了这一点,该视频被称为匿名内部类的替代品,这是什么?

android - 如何避免每次运行 Espresso 时出现 'Gradle build'

javascript - 识别和打印对象中的对象 - Angular

java - 将 int 转换为十六进制字符串需要更好的方法

java - 发送winmail格式到Outlook并触发Confirmitaion(email和ics不要分开)

java - 如何使用 ksoap2 验证 sap web 服务