我正在构建一个JSON字符串以发送到我的Web服务.由于其中一个是用户输入的,因此可以使用双引号.我试图逃避它来解决这个问题.
String strValue = "height of 6\"";
JSONObject json = new JSONObject();
json.put("key", strValue.replaceAll("\"","\\\""));
Run Code Online (Sandbox Code Playgroud)
这里的问题是,当我这样做时json.toString(),我得到3个斜杠.
例如:
{"key","height of 6\\\""}
Run Code Online (Sandbox Code Playgroud)
如果我不尝试做任何替换,json.toString()给我打破json.
例如:
{"key", "height of 6""}
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能正确?
注意:当我的网站保存此值并显示它时,它会显示 height of 6\"
更新:
它似乎是罪魁祸首 json.toString()
当我调用replaceAll方法时 - 正确 - 只能转义双引号.它似乎json.toString()逃脱斜线.要解决这个问题,我必须这样做json.toString().replace("\\\\", "").这引出了一个问题:为什么在地球上JSONObject会转义斜线而不是双引号?????
看来罪魁祸首是json.toString()
当我调用 ReplaceAll 方法时,它(正确地)仅转义双引号。它似乎json.toString()逃脱了斜线。为了解决这个问题,我必须这样做json.toString().replace("\\\\", "")。
这就引出了一个问题:到底为什么 JSONObject 转义斜杠而不转义双引号???
| 归档时间: |
|
| 查看次数: |
2376 次 |
| 最近记录: |