Я использую Firefox 3.5b4.
Это предупреждает об объекте объекта, объекте объекта:
var jsonString = '[{"foo": "one", "bar": 1}, {"foo": "two", "bar": 2}]';
var jsonObjects = JSON.parse(jsonString);
alert(jsonObjects);
Это предупреждает пустую строку, то есть jsonObjects имеет значение null.
var jsonString = "[{'foo': '1', 'bar': 2}, {'foo': '3', 'bar': 4}]";
var jsonObjects = JSON.parse(jsonString);
alert(jsonObjects);
Аналогично для имен некотируемых свойств, то есть {foo: '1', bar: 2}.
Что происходит? Мне что-то не хватает, или есть правило о двойном и одинарном цитировании с JSON.parse? Все три версии работают нормально с eval.