parse - ler json javascript




JSON: por que as barras para a frente escaparam? (4)

A razão para isso "me escapa".

JSON escapa da barra, então um hash {a: "a/b/c"} é serializado como {"a":"a\/b\/c"} vez de {"a":"a/b/c"} .

Por quê?


PHP feio!

O JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES deve ser padrão, não uma opção (estranha) ... Como dizê-lo para desenvolvedores php?

O padrão DEVE ser o uso mais frequente, e os padrões mais usados ​​(atuais) como UTF8. Quantos fragmentos de código PHP no Github ou em outro lugar precisam desse recurso exótico "embutido em HTML"?


A especificação JSON diz que você pode escapar da barra, mas não precisa.


Eu fiz a mesma pergunta há algum tempo e tive que responder pessoalmente. Aqui está o que eu criei:

Parece, meu primeiro pensamento [ que vem de suas raízes JavaScript ] estava correto.

'\/' === '/' em JavaScript e JSON é um JavaScript válido. No entanto, por que as outras fugas ignoradas (como \z ) não são permitidas no JSON?

A chave para isso foi ler http://www.cs.tut.fi/~jkorpela/www/revsol.html , seguido por http://www.w3.org/TR/html4/appendix/notes.html#h-B.3.2 . O recurso do escape de barra permite que o JSON seja incorporado em HTML (como SGML) e XML.


O JSON não exige que você faça isso, permite que você faça isso. Ele também permite que você use "\ u0061" para "A", mas não é necessário. Permitir \/ ajuda ao incorporar JSON em uma tag <script> , que não permite </ strings, como mostra Seb.

Algumas das APIs ASP.NET Ajax / JSON da Microsoft usam essa brecha para adicionar informações extras, por exemplo, um datetime será enviado como "\/Date(milliseconds)\/" . (Que nojo)





json