Sto usando Firefox 3.5b4.JSON.parse() richiede virgolette doppie?
This avvisi [object Object], [object Object]:
var jsonString = '[{"foo": "one", "bar": 1}, {"foo": "two", "bar": 2}]';
var jsonObjects = JSON.parse(jsonString);
alert(jsonObjects);
Questa avverte una stringa vuota, cioè jsonObjects è nullo.
var jsonString = "[{'foo': '1', 'bar': 2}, {'foo': '3', 'bar': 4}]";
var jsonObjects = JSON.parse(jsonString);
alert(jsonObjects);
Allo stesso modo per i nomi di proprietà non quotati, cioè {foo: '1', bar: 2}.
Cosa sta succedendo? Mi manca qualcosa di ovvio, o c'è una regola sulla quotazione doppia e singola con JSON.parse? Tutte e tre le versioni funzionano bene con eval.
Dove dice che la struttura superiore deve essere un oggetto? [Questo documento] (http://www.ietf.org/rfc/rfc4627.txt?number=4627) fornisce un esempio di un solo array, e [json.org] (http://json.org/) non lo fa Sembra che questo requisito sia specificato. – Brendon
http://stackoverflow.com/a/4201631/977939 questo ha la spiegazione: parole di riserva. – jpillora