将 JavaScript 对象表示法 (JSON) 字符串转换为对象。
一、语法:
JSON.parse(text [,reviver])
二、参数:
三、返回值:
一个对象或数组。
四、异常:
如果此函数引发 JavaScript 分析器错误(如“SCRIPT1014:无效字符”),则输入文本将不遵循 JSON 语法。若要更正此错误,请执行下列操作之一:
修改text参数以遵循 JSON 语法。有关更多信息,请参见 JSON 对象的BNF 语法表示法。
例如,如果响应的格式为 JSONP 而非纯 JSON,请在响应对象上尝试此代码:
varfixedResponse=response.responseText.replace(/\\'/g,"'");
varjsonObj=JSON.parse(fixedResponse);确保通过 JSON 兼容的实现(如text)对JSON.stringify参数进行序列化。
示例
以下示例使用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 标准模式。
五、参阅
原文链接:https://www.f2er.com/json/289367.html