在JSONObject中填充引号

时间:2012-11-16 16:01:08

标签: java android json

我正在构建一个JSON字符串以发送到我的Web服务。由于其中一个是用户输入的,因此可以使用双引号。我试图逃避它来解决这个问题。

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会转义斜杠而不是双引号?????

1 个答案:

答案 0 :(得分:2)

似乎罪魁祸首是json.toString()

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

这引出了一个问题:为什么在地球上JSONObject会转义斜线而不是双引号?????