这个“逃脱”我的原因。
JSON 转义正斜杠,因此哈希 {a: "a/b/c"}
被序列化为 {"a":"a\/b\/c"}
而不是 {"a":"a/b/c"}
。
为什么?
json_encode()
默认转义正斜杠,但从 PHP 5.4.0(2012 年 3 月)开始具有 JSON_UNESCAPED_SLASHES
选项
'</'
中:echo str_replace('</', '<\/', json_encode($obj, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES));
JSON 不要求您这样做,它允许您这样做。它还允许您将“\u0061”用于“A”,但这不是必需的,就像 Harold L 指出的那样:
JSON 规范说您可以转义正斜杠,但您不必这样做。
Harold L 于 2009 年 10 月 16 日 21:59 回答
允许 \/
有助于将 JSON 嵌入到 <script>
标记中,这不允许 </
在字符串中,就像 Seb 指出的那样:
这是因为 HTML 不允许