我需要使用JSON发送日期。日期字符串应如下所示:
“ 2013/5/15”
而是JSONObject.toString按以下方式对其进行转义:
JSONObject.toString
“ 2013 \ / 5 \ / 15”
我知道这样做是为了允许在scripts标记内包含json字符串,因为此问题解释了: JSON:为什么要转义正斜杠?
但就我而言,我不需要它。实际上,服务器正在返回错误。服务器没有处理此问题,因此我无法修复该服务器,因此必须在移动客户端代码中修复它。
我可以String.replace在序列化之后执行一个操作,但是如果我实际上想在JSON的任何其他部分包含“ \ /”字符串怎么办?
String.replace
有没有一种方法可以序列化JSON对象而不转义斜杠?(如果可能,不进行任何转义)
提前致谢。
我最终选择了快速而又肮脏的技巧,在将序列化的字符串发送到服务器之前替换掉序列化字符串中的转义斜杠。幸运的是,JSONObject还转义了反斜杠,因此我也必须取消转义。现在,如果我想发送“ \ /”,转义的字符串将是“ \\ /”,并且替换的结果是原始字符串。