JSONObject.toString:如何不转义斜线

新手上路,请多包涵

我需要用 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 许可协议

阅读 2k
2 个回答

我最终选择了在将序列化字符串发送到服务器之前替换序列化字符串中的转义斜杠的快速而肮脏的技巧。幸运的是,JSONObject 也转义了反斜杠,所以我也必须取消对它们的转义。现在,如果我想故意发送“\ /”,转义字符串将是“\\/”,替换的结果是预期的原始字符串。

原文由 Mister Smith 发布,翻译遵循 CC BY-SA 3.0 许可协议

jsonObjSend.toString().replace("\\\\","")

为我工作。有点肮脏的把戏,但似乎没有其他解决方案。

原文由 Vinay 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题