Я раньше не использовал eval()
, поэтому я предполагаю, что я просто получил синтаксис ужасно неправильно. Что случилось со следующим:Eval не работает - JavaScript
var JSONAsString = '{"item1":"one", "item2":"two", "item3":"three"}';
var JSONAsObject = eval(JSONString);
alert(JSONAsObject.item1);
Поскольку это, кажется, не работает - я загрузить страницу и ничего не происходит.
И да, я знаю, что я не должен использовать eval. Я предполагаю, что синтаксис для JSON.parse()
такой же, как у eval ... right? Если это так, если (после исправления кода) я заменю eval на JSON.parse, будет ли он делать то же самое?
'JSONString' vs' JSONAsString', 'JSONAsObject' vs' JSONObject' - неправильные имена переменных. Кроме того, после разбора/оценки это объект JavaScript, а не JSON (просто для nitpicking;)), поэтому 'JSONObject' не подходит. – ThiefMaster
Предполагая, что вы правильно указали имена переменных, 'eval'ing string приводит к синтаксической ошибке, потому что' {...} 'интерпретируются как * block *, а не как литерал объекта. –
@ThiefMaster - именно поэтому это JSON * как * (an) объект. – Bluefire