在JSONObject中填充引号

我正在构建一个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会转义斜线而不是双引号?????

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

当我调用replaceAll方法时 – 正确 – 只能转义双引号。 看来json.toString()转义斜杠。 要解决这个问题,我必须做json.toString().replace("\\\\", "")

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