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 彿¸è®éäºæ¸å¼ææ¯ç©ä»¶å¨è¢«åå³ä¹ååè½æã
èªæ³
JSON.parse(text[, reviver])
忏
text-
è¦è§£ææ JSON çå串ãéå° JSON èªæ³çæè¿°ï¼è«åè¦
JSONç©ä»¶ã reviver鏿æ§-
çºé¸ææ§ç忏ï¼ç¨ä¾æè¿° JSON å串ä¸çå¼è©²å¦ä½è¢«è§£æä¸¦åå³çå½å¼(function)
åå³å¼
å¾çµ¦å®ç JSON text åå³å°æç 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 彿¸ã妿 reviver 彿¸åå³äº undefinedï¼ææ¯æ²æåå³å¼ï¼ä¾å¦ï¼å½å¼ææ©çµæï¼ï¼åè©²å±¬æ§æå¾ç©ä»¶ä¸è¢«åªé¤ï¼åä¹å¦ææåç話ï¼è©²å±¬æ§çå¼å°±æè¢«æ°çåå³å¼å代ã
妿 reviver åªéè½ææäºç¹å®çå¼ï¼è«è¨å¾å°å ¶ä»ä¸é ç¹å¥è½æçå¼ä»¥åä¾çå¼åå³ï¼å¦åéäºå¼æå¾åå³ççµæç©ä»¶ä¸åªé¤ã
JSON.parse('{"p": 5}', function (k, v) {
if (typeof v === "number") {
return v * 2; // return v * 2 for numbers
}
return v; // return everything else unchanged
});
// { p: 10 }
JSON.parse('{"1": 1, "2": 2, "3": {"4": 4, "5": {"6": 6}}}', function (k, v) {
console.log(k); // log the current property name, the last is "".
return v; // return the unchanged property value.
});
// 1
// 2
// 4
// 6
// 5
// 3
// ""
JSON.parse() ä¸å®¹è¨±å°¾é¨æéè
// éå
©å齿æåº SyntaxError
JSON.parse("[1, 2, 3, 4, ]");
JSON.parse('{"foo" : 1, }');
è¦ç¯
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-json.parse> |
ç覽å¨ç¸å®¹æ§
Gecko ç¸é
å¾ Gecko 29 çæ¬éå§ï¼é¯èª¤æ ¼å¼ç JSON å串æç¢çæ´è©³ç´°çé¯èª¤è¨æ¯ï¼å å«é æè§£æé¯èª¤çè¡æ¸å忏ãéå¨éå°å¤§é JSON è³æé²è¡é¤é¯ææå¾æå¹«å©ã
JSON.parse("[1, 2, 3, 4,]");
// SyntaxError: JSON.parse: unexpected character at
// line 1 column 13 of the JSON data