java - JSONObject.toString : how NOT to escape slashes

标签 java android json

我需要以 JSON 格式发送日期。日期字符串应如下所示:

"2013/5/15"

相反,JSONObject.toString 将其转义如下:

"2013\ /5\ /15"

我知道这样做是为了允许脚本标签中包含 json 字符串,正如这个问题所解释的: JSON: why are forward slashes escaped?

但就我而言,我不需要它。事实上,服务器正在返回一个错误。服务器没有处理这个,我无法修复服务器,所以我必须在移动客户端代码中修复它。

我可以在序列化之后执行 String.replace,但如果我真的想在 JSON 的任何其他部分包含“\/”字符串怎么办?

有没有办法在不转义斜杠的情况下序列化 JSON 对象? (如果可能,不要转义)

提前致谢。

最佳答案

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

关于java - JSONObject.toString : how NOT to escape slashes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16563579/

相关文章:

java - 使用 Jackson Objectmapper 将整数列表从 json 反序列化为 java

java - 如何设置Pragma : no-cache HTTP header in Jersey?

Android:对两种算法进行基准测试

json - 如何在 Go 中导航具有未知结构的嵌套 json?

java - 使用 POJO 和 Enum 将 JSON 转为 Spring Controller

javascript - 从 JSON 数据创建 html 表

Java复制文件扭曲文件

java - 对于 Wildfly 中以 .html 文件结尾的 URL,此 URL 不支持 HTTP 方法 POST

android - 我需要在不影响前台服务的情况下删除通知

java - <android.arch.lifecycle.ViewModel>> 不能在没有@Provides-annotated 方法的情况下提供