escape - ¿Por qué es la barra un carácter escapable en JSON?
json html escape (2)
Acabo de publicar una reseña de este tema en mi blog. Creo que tienes razón, esa es la única razón. También tenga en cuenta que la barra es el único carácter estándar que se puede escapar.
Por lo general, los codificadores JSON lo hacen mal y escapan de cualquier barra diagonal que encuentren en el camino, mientras que solo se debe escapar la barra diagonal </script>
, y tal vez todas las que coincidan con el JavaScript RegExp /<///w+/
, por el mismo razón.
EDITAR: enlace de blog fijo.
Posible duplicado:
JSON: ¿Por qué se escapan barras diagonales hacia adelante?
json.org afirma que las barras diagonales hacia adelante (también conocidas como solidus, /
) pueden escaparse:
"//"
Sin embargo, las barras diagonales que no se escapan también son válidas:
"/"
¿Qué es lo racional detrás de esto? ¿Viene de las raíces de Javascript? (Es decir, "</script>"
es un problema en Javascript basado en navegador, vea el comentario de Douglas Crockford ) ¿O tiene alguna otra razón?
Parece, mi primer pensamiento fue correcto.
''//'' === ''/''
en JavaScript, y JSON almost es un JavaScript válido. Sin embargo, ¿por qué los otros escapes ignorados (como /z
) no están permitidos en JSON?
La clave para esto fue leer http://www.cs.tut.fi/~jkorpela/www/revsol.html , seguido de http://www.w3.org/TR/html4/appendix/notes.html#h-B.3.2 . La característica de slash escape permite que JSON se incruste en HTML (como SGML) y XML.