HTML: Markup language
CSS: Styling language
JavaScript: Scripting language
Web APIs: Programming interfaces
All web technology
Learn web development
Discover our tools
Get to know MDN better
This page was translated from English by the community. Learn more and join the MDN Web Docs community.
View in English Always switch to English
This feature is well established and works across many devices and browser versions. It’s been available across browsers since июль 2015 г..
* Some parts of this feature may have varying levels of support.
Метод JSON.parse() разбирает строку JSON, возможно с преобразованием получаемого в процессе разбора значения.
JSON.parse()
JSON.parse(text[, reviver])
text
Разбираемая строка JSON. Смотрите документацию по объекту JSON для описания синтаксиса JSON.
JSON
reviver
Если параметр является функцией, определяет преобразование полученного в процессе разбора значения, прежде, чем оно будет возвращено вызывающей стороне.
Возвращает объект Object, соответствующий переданной строке JSON text.
Object
Выбрасывает исключение SyntaxError, если разбираемая строка не является правильным JSON.
SyntaxError
JSON.parse("{}"); // {} JSON.parse("true"); // true JSON.parse('"foo"'); // "foo" JSON.parse('[1, 5, "false"]'); // [1, 5, "false"] JSON.parse("null"); // null
Если определён параметр reviver, значение, вычисляемое при разборе строки, будет преобразовано перед его возвратом. В частности, вычисленное значение и все его свойства (начиная с самых вложенных свойств и кончая самим значением), каждое проходят через функцию reviver, которая вызывается с контекстом this, содержащим объект в виде обрабатываемого свойства, и с аргументами: именем свойства в виде строки и значением свойства. Если функция reviver вернёт undefined (либо вообще не вернёт никакого значения, например, если выполнение достигнет конца функции), свойство будет удалено из объекта. В противном случае свойство будет переопределено возвращаемым значением.
this
undefined
В конечном итоге, функция reviver вызывается с пустой строкой и самым верхним значением, чтобы обеспечить преобразование самого верхнего значения. Убедитесь, что вы правильно обрабатываете этот случай — обычно для этого нужно просто вернуть само значение — или метод JSON.parse() вернёт undefined.
JSON.parse('{"p": 5}', function (k, v) { if (k === "") { return v; } // самое верхнее значение - возвращаем его return v * 2; // иначе возвращаем v * 2. }); // { p: 10 } JSON.parse('{"1": 1, "2": 2, "3": {"4": 4, "5": {"6": 6}}}', function (k, v) { console.log(k); // пишем имя текущего свойства, последним именем будет "" return v; // возвращаем неизменённое значение свойства }); // 1 // 2 // 4 // 6 // 5 // 3 // ""
Enable JavaScript to view this browser compatibility table.
JSON.stringify()