JSON.parse()

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());