JSON.parse()
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. Itโs been available across browsers since โจ2015๋ 7์โฉ.
* Some parts of this feature may have varying levels of support.
JSON.parse()
๋ฉ์๋๋ JSON ๋ฌธ์์ด์ ๊ตฌ๋ฌธ์ ๋ถ์ํ๊ณ , ๊ทธ ๊ฒฐ๊ณผ์์ JavaScript ๊ฐ์ด๋ ๊ฐ์ฒด๋ฅผ ์์ฑํฉ๋๋ค. ์ ํ์ ์ผ๋ก, reviver
ํจ์๋ฅผ ์ธ์๋ก ์ ๋ฌํ ๊ฒฝ์ฐ, ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๊ธฐ ์ ์ ๋ณํํ ์ ์์ต๋๋ค.
์๋ํด ๋ณด๊ธฐ
const json = '{"result":true, "count":42}';
const obj = JSON.parse(json);
console.log(obj.count);
// Expected output: 42
console.log(obj.result);
// Expected output: true
๊ตฌ๋ฌธ
JSON.parse(text[, reviver])
๋งค๊ฐ๋ณ์
text
-
JSON์ผ๋ก ๋ณํํ ๋ฌธ์์ด. JSON ๊ตฌ๋ฌธ์
JSON
๊ฐ์ฒด์ ์ค๋ช ์ ์ฐธ๊ณ ํ์ธ์. reviver
Optional-
ํจ์๋ผ๋ฉด, ๋ณํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๊ธฐ ์ ์ ์ด ์ธ์์ ์ ๋ฌํด ๋ณํํจ.
๋ฐํ ๊ฐ
์ฃผ์ด์ง JSON ๋ฌธ์์ด์ ๋์ํ๋ Object
.
์์ธ
๋ณํํ ๋ฌธ์์ด์ด ์ ํจํ JSON์ด ์๋ ๊ฒฝ์ฐ SyntaxError
.
์์
JSON.parse()
์ฌ์ฉํ๊ธฐ
JSON.parse("{}"); // {}
JSON.parse("true"); // true
JSON.parse('"foo"'); // "foo"
JSON.parse('[1, 5, "false"]'); // [1, 5, "false"]
JSON.parse("null"); // null
reviver
๋งค๊ฐ๋ณ์ ์ฌ์ฉํ๊ธฐ
reviver
๊ฐ ์ฃผ์ด์ง๋ฉด ๋ถ์ํ ๊ฐ์ ๋ฐํํ๊ธฐ ์ ์ ๋ณํํฉ๋๋ค. ๊ตฌ์ฒด์ ์ผ๋ก๋, ๋ถ์ํ ๊ฐ๊ณผ ๊ทธ ๋ชจ๋ ์์ฑ(๊ฐ์ฅ ๊น๊ฒ ์ค์ฒฉ๋ ์์ฑ๋ถํฐ ์์ํด ์ ์ผ ๋ฐ๊นฅ์ ์๋ ๊ฐ๊น์ง)์ ๊ฐ๊ฐ reviver
์ ์ ๋ฌํฉ๋๋ค. reviver
์ this
๋ฌธ๋งฅ์ ๋ถ์ํ ๊ฐ์ผ๋ก ์ค์ ๋๊ณ , ์์ฑ ๋ช
(๋ฌธ์์ด)๊ณผ ๊ฐ์ ์ธ์๋ก ์ ๋ฌ๋ฐ์ต๋๋ค. reviver
๊ฐ undefined
๋ฅผ ๋ฐํํ๊ฑฐ๋ ๋ฐํํ์ง ์๋๋ค๋ฉด, ์์ปจ๋ ํจ์๊ฐ ์ค๊ฐ์ ์คํจํ๋ค๋ฉด ๊ทธ ์์ฑ์ ์ต์ข
๊ฒฐ๊ณผ์์ ์ ์ธ๋ฉ๋๋ค. ๊ทธ ์ธ์๋ ๋ฐํ ๊ฐ์ผ๋ก ์์ฑ์ ๊ฐ์ ์ฌ์ค์ ํฉ๋๋ค.
๋ง์ฝ reviver
๊ฐ ์ผ๋ถ ๊ฐ๋ง ๋ณํํ๊ณ ๋๋จธ์ง๋ ๊ฑด๋๋ฆฌ์ง ์๋๋ค๋ฉด, ๋๋จธ์ง ๊ฐ์ ๊ทธ๋๋ก ๋ฐํํ๋๊ฑธ ์์ง ๋ง์ธ์. ๊ทธ๋ ์ง ์์ผ๋ฉด ๋ณํํ ๊ฐ ์ธ์๋ ๊ฒฐ๊ณผ์์ ๋ชจ๋ ์ ์ธ๋ฉ๋๋ค.
JSON.parse(
'{"p": 5}',
(key, value) =>
typeof value === "number"
? value * 2 // ์ซ์๋ผ๋ฉด 2๋ฐฐ
: value, // ๋๋จธ์ง ๊ทธ๋๋ก
);
// { p: 10 }
JSON.parse('{"1": 1, "2": 2, "3": {"4": 4, "5": {"6": 6}}}', (key, value) => {
console.log(key); // ํ์ฌ ์์ฑ๋ช
์ถ๋ ฅ, ๋ง์ง๋ง์ ๋น ๋ฌธ์์ด("")
return value; // ๋ณํํ์ง ์๊ณ ๊ทธ๋๋ก ๋ฐํ
});
// 1
// 2
// 4
// 6
// 5
// 3
// ""
ํํ ์ผํ ์ฌ์ฉ ๋ถ๊ฐ
// ๋ ๋ค SyntaxError
JSON.parse("[1, 2, 3, 4, ]");
JSON.parse('{"foo" : 1, }');
๋ช ์ธ์
Specification |
---|
ECMAScriptยฎ 2026 Language Specification # sec-json.parse |
๋ธ๋ผ์ฐ์ ํธํ์ฑ
Loadingโฆ