将 JavaScript 对象表示法 (JSON) 字符串转换为对象。
一、语法:
JSON.parse(text [,reviver])
二、参数:
text
必需。一个有效的 JSON 字符串。
reviver
可选。一个转换结果的函数。将为对象的每个成员调用此函数。如果成员包含嵌套对象,则先于父对象转换嵌套对象。对于每个成员,会发生以下情况:
如果reviver返回一个有效值,则成员值将替换为转换后的值。
如果reviver返回它接收的相同值,则不修改成员值。
如果reviver返回null或undefined,则删除了该成员。
三、返回值:
一个对象或数组。
四、异常:
如果此函数引发 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
示例
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)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。