JSON.parse() - розбирає рядок JSON.
JSON.parse(textJson[, reviver])
textJson - рядок формату JSON.
reviver - не обов'язковий параметр. Функція яка перетворює результат. Має два параметри key i values.
parse() - метод об'єкту JSON який розбирає рядок формату даних JSON і повертає о'бєкт.
Не підтримують старі браузери.
У випадку якщо браузер не підтримує JSON.parse() перетворити рядок формату JSON у об'єкт можна скористатися функцією eval. Потрібно лише взяти у дужки формат JSON.
var json='{"name":"json"}';
var ob=eval('('+json+')');
alert(ob.name);
Прицьому такий спосіб є повільніший і менш безпечний так як eval може виконати код JavaScript. Небезпека загрожує наприклад якщо дані формату JSON отримано з сервера і код злоякісний може нашкодити: змінити текст сторінки, перенаправити на іншу сторінку тощо.
var ob=JSON.parse('{"text":"яваскрипт.укр"}');
alert(ob.text);
var json='{"mas":[1,3,"два"], "n":4, "name":"json формат", "p":{"x":"7"}}';
var ob=JSON.parse(json);
alert(ob.mas.toString()+' '+ob.name);
var j = '{"name":"json формат","top":"8"}';
var b=JSON.parse(j, function(key, value){
if(key=='top') return parseInt(value);
else return value;
});
alert(b.name);
Функція яка перетворює JSON у об'єкт JavaScript з перетвореням типів даних:
function JSONtoObject(json){
return JSON.parse(json, function(key, value){
if(isNaN(Date.parse(value))==false) return new Date(value);
if(isNaN(Number(value))==false) return new Number(value);
return value;
});}
var j = '{"name":"json формат","y":"8", "date": "2016-08-18T20:10:52.000Z" }';
var b=JSONtoObject(j);
alert(b.date.toString());