Pregunta

por el debate en este post: JSON-conversión-in-javascript

¿Fue útil?

Solución

Sí, una matriz es legal como de nivel superior JSON-texto.

Hay tres documentos estándar que definen JSON: RFC 4627 , RFC 7159 (que obsoletes RFC 4627), y ECMA-404 . Se diferencian en que los elementos de nivel superior que permiten, pero todos permiten un objeto o una matriz como el elemento de nivel superior.

  • RFC 4627:. Objeto o matriz
    "Un texto JSON es un objeto serializado o matriz"
  • RFC 7159:. Cualquier valor JSON
    "Un texto JSON es un valor serializado"
  • ECMA-404: Cualquier valor JSON
    "Texto A JSON es una secuencia de tokens formadas a partir de puntos de código Unicode que se ajusta al valor JSON. gramática ".

Otros consejos

, pero se debe considerar la posibilidad de la raíz de un objeto en su lugar, en algunos casos, debido a la JSON secuestro . Esta es una vulnerabilidad de divulgación de la información basada en anulando el constructor de matriz en JavaScript.

Esto es de la especificación ECMAScript.

JSONText :
    JSONValue

JSONValue :
    JSONNullLiteral 
    JSONBooleanLiteral 
    JSONObject 
    JSONArray 
    JSONString 
    JSONNumber

Sí, probarlo aquí.

http://www.jsonlint.com/

y poner en [{}]

Hay una cierta confusión, visto en los otros comentarios. El tipo "/ json aplicación" medios de comunicación permite que sólo objeto o matriz en el nivel superior para JSON-texto, por JSON RFC . Sin embargo, para un analizador de cualquier valor JSON es aceptable, como se ve en la especificación ECMAScript.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top