JSON.parse 函数
JSON.parse 函数
JavaScript
JSON.parse 函数 (JavaScript)
将 JavaScript 对象表示法 (JSON) 字符串转换为对象。
JSON.parse(text [, reviver])
异常
如果此函数引发 JavaScript 分析器错误(如“SCRIPT1014:无效字符”),则输入文本将不遵循 JSON 语法。 若要更正此错误,请执行下列操作之一:
-
修改 text 参数以遵循 JSON 语法。 有关更多信息,请参见 JSON 对象的 BNF syntax notation(BNF 语法表示法)。
-
确保通过 JSON 兼容的实现对文本参数进行序列化,例如 JSON.stringify。
示例
以下示例使用 JSON.parse 将 JSON 字符串转换成对象。
- var jsontext = '{"firstname":"Jesper","surname":"Aaberg","phone":["555-0100","555-0120"]}';
- var contact = JSON.parse(jsontext);
- document.write(contact.surname + ", " + contact.firstname);
- // Output: Aaberg, Jesper
以下示例演示了如何使用 JSON.stringify 将数组转换成 JSON 字符串,然后使用 JSON.parse 将该字符串还原成数组。
- var arr = ["a", "b", "c"];
- var str = JSON.stringify(arr);
- document.write(str);
- document.write ("<br/>");
- var newArr = JSON.parse(str);
- while (newArr.length > 0) {
- document.write(newArr.pop() + "<br/>");
- }
- // Output:
- var arr = ["a", "b", "c"];
- var str = JSON.stringify(arr);
- document.write(str);
- document.write ("<br/>");
- var newArr = JSON.parse(str);
- while (newArr.length > 0) {
- document.write(newArr.pop() + "<br/>");
- }
- // Output:
- ["a","b","c"]
- c
- b
- a
reviver 函数通常用于将国际标准化组织 (ISO) 日期字符串的 JSON 表示形式转换为协调世界时 (UTC) 格式 Date 对象。
此示例使用 JSON.parse 来反序列化 ISO 格式的日期字符串。dateReviver函数为格式为 ISO 日期字符串的成员返回Date对象。
- var jsontext = '{ "hiredate": "2008-01-01T12:00:00Z", "birthdate": "2008-12-25T12:00:00Z" }';
- var dates = JSON.parse(jsontext, dateReviver);
- document.write(dates.birthdate.toUTCString());
- function dateReviver(key, value) {
- var a;
- if (typeof value === 'string') {
- a = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value);
- if (a) {
- return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4],
- +a[5], +a[6]));
- }
- }
- return value;
- };
- // Output:
- // Thu, 25 Dec 2008 12:00:00 UTC
要求
在以下文档模式中受到支持:Internet Explorer 8 标准、Internet Explorer 9 标准、Internet Explorer 10 标准、Internet Explorer 11 标准。Windows 应用商店 应用程序中也支持此项。请参阅 版本信息。
在以下文档模式中不受支持:Quirks、Internet Explorer 6 标准模式、Internet Explorer 7 标准模式。
请参见