From 218934fa2ed1c702a6d3923d2aa2cc6b43c48684 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:43:23 -0500 Subject: initial commit --- .../reference/global_objects/json/parse/index.html | 133 +++++++++++++++++++++ 1 file changed, 133 insertions(+) create mode 100644 files/uk/web/javascript/reference/global_objects/json/parse/index.html (limited to 'files/uk/web/javascript/reference/global_objects/json/parse/index.html') diff --git a/files/uk/web/javascript/reference/global_objects/json/parse/index.html b/files/uk/web/javascript/reference/global_objects/json/parse/index.html new file mode 100644 index 0000000000..685832a864 --- /dev/null +++ b/files/uk/web/javascript/reference/global_objects/json/parse/index.html @@ -0,0 +1,133 @@ +--- +title: JSON.parse() +slug: Web/JavaScript/Reference/Global_Objects/JSON/parse +tags: + - ECMAScript5 + - JSON + - JavaScript + - Method + - Довідка +translation_of: Web/JavaScript/Reference/Global_Objects/JSON/parse +--- +
{{JSRef}}
+ +
Метод JSON.parse() розбирає рядок із JSON, створюючи відповідне до його вмісту значення чи об'єкт. Якщо вказати функцію reviver — другий необов'язковий параметр — її буде використано для перетворення створеного об'єкта та його властивостей перед поверненням. + +
 
+ +
{{EmbedInteractiveExample("pages/js/json-parse.html")}}
+ + +
+ +

Синтаксис

+ +
JSON.parse(text[, reviver])
+ +

Параметри

+ +
+
text
+
Рядок, що його має бути розібрано, як JSON. Докладні відомості про синтаксис JSON наведено в статті про об'єкт {{jsxref("JSON")}}.
+
reviver {{optional_inline}}
+
Якщо вказано функцію, її буде використано для перетворення отриманих значень перед поверненням.
+
+ +

Вертає

+ +

{{jsxref("Object", "Об'єкт")}}, що відповідає переданому JSON-рядку.

+ +

Винятки

+ +

Викидає виняток {{jsxref("Global_Objects/SyntaxError", "SyntaxError")}}, якщо вміст переданого рядка не є належним JSON.

+ +

Приклади

+ +

Використання JSON.parse()

+ +
JSON.parse('{}');                   // {}
+JSON.parse('{"x": {"value": 1}}');  // {x: {value: 1}}
+JSON.parse('true');                 // true
+JSON.parse('"щось навіщось"');      // "щось навіщось"
+JSON.parse('[1, 5, "false"]');      // [1, 5, "false"]
+JSON.parse('null');                 // null
+
+ +

Використання параметра reviver

+ +

Якщо reviver вказано, то його буде використано для перетворення кожного значення, отриманого шляхом розбору JSON-рядка. Кожне значення (об'єкт та всі його властивості) окремо піддається перетворенню за допомогою reviver в порядку зсередини назовні (від властивостей найглибше вкладених об'єктів). Задля перетворення чергової властивості до функції reviver передається два аргументи: ім'я властивості (рядок) та її значення. Посилання this вказує на об'єкт, що містить зазначену властивість.

+ +

Якщо функція reviver повертає {{jsxref("undefined")}} (або взагалі не вертає значення), властивість буде видалено з об'єкта. Інакше повернуте значення буде встановлено замість попереднього. Отже, якщо ви маєте на меті перетворити лише деякі значення, для решти функція reviver має вертати значення другого аргументу без змін.

+ +
JSON.parse('{"p": 5, "x": "5"}', function (key, value) {
+  return typeof value === 'number'
+    ? value * 2 // Повернути подвоєне значення, якщо це число.
+    : value     // Решту значень повернути без змін.
+});
+
+// { p: 10, x: "5" }
+
+JSON.parse('{"1": 1, "2": 2, "3": {"4": 4, "5": {"6": 6}}}', function (key, value) {
+  // Вивести ім'я чергової властивості (для останньої це порожній рядок — "").
+  console.log(key);
+
+  // Повернути значення властивості без змін.
+  return value;
+});
+
+// 1
+// 2
+// 4
+// 6
+// 5
+// 3
+// ""
+
+ +

Прикінцеві коми вважаються за помилку

+ +
// Обидва виклики викидають SyntaxError.
+JSON.parse('[1, 2, 3, 4, ]');
+JSON.parse('{"foo" : 1, }');
+
+ +

Специфікації

+ + + + + + + + + + + + + + + + + + + + + + + + +
СпецифікаціяСтатусКоментар
{{SpecName('ES5.1', '#sec-15.12.2', 'JSON.parse')}}{{Spec2('ES5.1')}}Початкова виознака. Запроваджено у JavaScript 1.7.
{{SpecName('ES6', '#sec-json.parse', 'JSON.parse')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-json.parse', 'JSON.parse')}}{{Spec2('ESDraft')}} 
+ +

Підтримка веб-переглядачами

+ +
+ + +

{{Compat("javascript.builtins.JSON.parse")}}

+
+ +

Див. також

+ + -- cgit v1.2.3-54-g00ecf