加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

JSON.parse 函数 (JavaScript)

发布时间:2020-12-16 18:58:04 所属栏目:百科 来源:网络整理
导读:将 JavaScript 对象表示法 (JSON) 字符串转换为对象。 一、语法: JSON.parse(text [,reviver]) 二、参数: text 必需。一个有效的 JSON 字符串。 reviver 可

将 JavaScript 对象表示法 (JSON) 字符串转换为对象。

一、语法:

  JSON.parse(text [,reviver])

二、参数:

  • text

  • 必需。一个有效的 JSON 字符串。

  • reviver

  • 可选。一个转换结果的函数。将为对象的每个成员调用此函数。如果成员包含嵌套对象,则先于父对象转换嵌套对象。对于每个成员,会发生以下情况:

    • 如果reviver返回一个有效值,则成员值将替换为转换后的值。

    • 如果reviver返回它接收的相同值,则不修改成员值。

    • 如果reviver返回nullundefined,则删除了该成员。

三、返回值:

一个对象或数组。

四、异常:

如果此函数引发 JavaScript 分析器错误(如“SCRIPT1014:无效字符”),则输入文本将不遵循 JSON 语法。若要更正此错误,请执行下列操作之一:

  • 修改text参数以遵循 JSON 语法。有关更多信息,请参见 JSON 对象的BNF 语法表示法。

    例如,如果响应的格式为 JSONP 而非纯 JSON,请在响应对象上尝试此代码:

    varfixedResponse=response.responseText.replace(/'/g,"'");
    varjsonObj=JSON.parse(fixedResponse);
  • 确保通过 JSON 兼容的实现(如text)对JSON.stringify参数进行序列化。

  • 在 JSON 验证程序(如JSLint)中运行text参数以帮助找到语法错误。

示例

以下示例使用JSON.parse将 JSON 字符串转换成对象。

varjsontext='{"firstname":"Jesper","surname":"Aaberg","phone":["555-0100","555-0120"]}';
varcontact=JSON.parse(jsontext);
document.write(contact.surname+","+contact.firstname);
document.write(contact.phone[1]);
//Output:
//Aaberg,Jesper
//555-0100

以下示例演示了如何使用JSON.stringify将数组转换成 JSON 字符串,然后使用JSON.parse将该字符串重新转换成数组。

vararr=["a","b","c"];
varstr=JSON.stringify(arr);
document.write(str);
document.write("<br/>");

varnewArr=JSON.parse(str);
while(newArr.length>0){
document.write(newArr.pop()+"<br/>");
}
//["a","b","c"]
//c
//b
//a

示例

reviver函数通常用于将国际标准化组织 (ISO) 日期字符串的 JSON 表示形式转换为协调世界时 (UTC) 格式日期对象。此示例使用JSON.parse来反序列化 ISO 格式的日期字符串。dateReviver函数为格式为 ISO 日期字符串的成员返回Date对象。

varjsontext='{"hiredate":"2008-01-01T12:00:00Z","birthdate":"2008-12-25T12:00:00Z"}';
vardates=JSON.parse(jsontext,dateReviver);
document.write(dates.birthdate.toUTCString());
functiondateReviver(key,value){
vara;
if(typeofvalue==='string'){
a=/^(d{4})-(d{2})-(d{2})T(d{2}):(d{2}):(d{2}(?:.d*)?)Z$/.exec(value);
if(a){
returnnewDate(Date.UTC(+a[1],+a[2]-1,+a[3],+a[4],
+a[5],+a[6]));
returnvalue;
};
//Thu,25Dec200812:00:00UTC

要求


在以下文档模式中受到支持:Internet Explorer 8 标准模式、Internet Explorer 9 标准模式、Internet Explorer 10 标准模式、Internet Explorer 11 标准模式。此外,也在应用商店应用(Windows 8 和 Windows Phone 8.1)中受支持。请参阅版本信息

在以下文档模式中不受支持:Quirks、Internet Explorer 6 标准模式、Internet Explorer 7 标准模式。


五、参阅

JSON.stringify 函数 (JavaScript)
toJSON 方法 (Date) (JavaScript)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读