de acordo com o debate neste post: json-conversion-in-javascript
de acordo com o debate neste post: json-conversion-in-javascript
Respostas:
Sim, uma matriz é válida como texto JSON de nível superior.
Existem três documentos padrão que definem JSON: RFC 4627 , RFC 7159 (que torna o RFC 4627 obsoleto) e ECMA-404 . Eles diferem em quais elementos de nível superior eles permitem, mas todos permitem um objeto ou uma matriz como o elemento de nível superior.
Sim , mas você deve considerar transformar a raiz em um objeto em alguns cenários, devido ao sequestro de JSON . Esta é uma vulnerabilidade de divulgação de informações baseada na substituição do construtor de array em JavaScript.
Isso é da especificação ECMAScript.
JSONText: JSONValue JSONValue: JSONNullLiteral JSONBooleanLiteral JSONObject JSONArray JSONString JSONNumber
Há alguma confusão, vista nos outros comentários. O tipo de mídia "aplicativo / json" permite apenas objeto ou matriz no nível superior para texto JSON , por JSON RFC . No entanto, para um analisador, qualquer valor JSON é aceitável, conforme visto na especificação ECMAScript.