我需要用 JSON 发送日期。日期字符串应如下所示:
“2013/5/15”
相反, JSONObject.toString
将其转义如下:
“2013\ /5\ /15”
我知道这样做是为了允许脚本标签内的 json 字符串,正如这个问题所解释的: JSON: why are forward slashes escaped?
但就我而言,我不需要它。实际上服务器正在返回一个错误。服务器不处理这个,我无法修复服务器,所以我必须在移动客户端代码中修复它。
我可以在序列化后执行 String.replace
,但如果我真的想在 JSON 的任何其他部分包含“\ /”字符串怎么办?
有没有办法在不转义斜杠的情况下序列化 JSON 对象? (如果可能的话,不要逃避任何事情)
提前致谢。
原文由 Mister Smith 发布,翻译遵循 CC BY-SA 4.0 许可协议
我最终选择了在将序列化字符串发送到服务器之前替换序列化字符串中的转义斜杠的快速而肮脏的技巧。幸运的是,JSONObject 也转义了反斜杠,所以我也必须取消对它们的转义。现在,如果我想故意发送“\ /”,转义字符串将是“\\/”,替换的结果是预期的原始字符串。