JSON.parse 函数 (JavaScript)

将 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)

相关文章

文章浏览阅读2.4k次。最近要优化cesium里的热力图效果,浏览...
文章浏览阅读1.2w次,点赞3次,收藏19次。在 Python中读取 j...
文章浏览阅读1.4k次。首字母缩略词 API 代表应用程序编程接口...
文章浏览阅读802次,点赞10次,收藏10次。解决一个JSON反序列...
文章浏览阅读882次。Unity Json和Xml的序列化和反序列化_uni...