Estoy usando Firefox 3.5b4.¿JSON.parse() requiere comillas dobles?
Esto alerta [Objeto], [Objeto objeto]:
var jsonString = '[{"foo": "one", "bar": 1}, {"foo": "two", "bar": 2}]';
var jsonObjects = JSON.parse(jsonString);
alert(jsonObjects);
Esto alerta una cadena vacía, es decir jsonObjects es nulo.
var jsonString = "[{'foo': '1', 'bar': 2}, {'foo': '3', 'bar': 4}]";
var jsonObjects = JSON.parse(jsonString);
alert(jsonObjects);
Del mismo modo para nombres de propiedades sin comillas, es decir {foo: '1', barra: 2}.
¿Qué está pasando? ¿Me estoy perdiendo algo obvio, o hay una regla sobre citas dobles e individuales con JSON.parse? Las tres versiones funcionan bien con eval.
¿Dónde dice que la estructura superior debe ser un objeto? [Este documento] (http://www.ietf.org/rfc/rfc4627.txt?number=4627) da un ejemplo de solo una matriz, y [json.org] (http://json.org/) doesn Parece que no especifica este requisito. – Brendon
http://stackoverflow.com/a/4201631/977939 esto tiene la explicación: reservar palabras. – jpillora