¿Hay caracteres prohibidos en los nombres clave, para objetos JavaScript o cadenas JSON? ¿O los personajes que necesitan escapar?
Para ser más específico, me gustaría usar "$", "-" y espacio en los nombres clave.
javascript
json
object
key
Christophe
fuente
fuente
obj['whatever']
notación. Pero solo se pueden usar claves alfanuméricas regulares para laobj.whatever
versión.Respuestas:
No. Cualquier cadena válida es una clave válida. Incluso puede
"
durar mientras escapas:Quizás exista la posibilidad de que encuentre dificultades para cargar dichos valores en algunos idiomas, que intentan asociar claves con nombres de campos de objetos. Sin embargo, no conozco ninguno de estos casos.
fuente
\u four-hex-digits
formulario).Los siguientes caracteres deben escaparse en los datos JSON para evitar problemas
JSON Parser puede ayudarte a lidiar con JSON.
EDITAR: Aquí hay un analizador JSON de reemplazo ya que el enlace de OP está muerto
fuente
{ "singlequotetest": "something here isn\'t right"}
versus{ "singlequotetest": "Fixing here what wasn't right"}
{"🐶🔫": "not nice, but still valid json"}
Vale la pena mencionar que si bien el inicio de las teclas con números es válido, podría causar algunos problemas no deseados.
Ejemplo:
fuente
Se deben evitar los puntos de código Unicode U + D800 a U + DFFF: no son válidos en Unicode porque están reservados para pares sustitutos UTF-16. Algunos codificadores / decodificadores JSON los reemplazarán con U + FFFD. Vea, por ejemplo, cómo el lenguaje Go y su biblioteca JSON se ocupan de ellos .
Así que evite "\ uD800" a "\ uDFFF" solo (no en pares sustitutos).
fuente