Gson gson = new GsonBuilder().disableHtmlEscaping().create();
String path = "/folder1/folder2".replaceAll("/","\\\\/");//for get \/folder1\/folder2
String result = gson.toJson(path);
,结果是\\ / folder1 \\ / folder2
答案 0 :(得分:2)
您的路径包含反斜杠,而toJson()
正在对其进行转义。当您在另一端反序列化时,您将通过正常的JSON unescaping结束\/folder1\/folder2
字符串。我不认为这是一个问题:序列化的目的是让你在远端获得相同的数据。你的输入是\/folder1\/folder2
,你的输出也是如此 - 事实上,这需要在途中逃避是无关紧要的。
尽管如此,它确实提出了为什么你想在字符串中使用\/
的问题。你是想手动逃避正斜杠吗?你不需要这样做。我强烈怀疑你应该/folder1/folder2
没有任何替代品。
编辑:从评论中看,您似乎有甚至不理解要求逃避/
。虽然事实证明它在JSON中转义任何字符都是有效的,但转义/
的要求显然是非标准的,我怀疑你很难找到一个允许你说的JSON库你需要它来逃脱。
我建议您重新审视对您施加此要求的任何内容,并尝试修复它以便它接受标准JSON而不转义/
。尝试手动添加额外级别的转义将不工作。