注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

itas109的博客

http://blog.csdn.net/itas109

 
 
 

日志

 
 

JSON.parse 函数 (JavaScript)  

2016-03-23 14:25:12|  分类: JavaScript |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

https://msdn.microsoft.com/zh-cn/library/cc836466(v=vs.94).aspx

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


语法



复制

JSON.parse(text [, reviver])


参数



 

text

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

reviver

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


reviver returns a valid value, the member value is replaced with the transformed value. " xml:space="preserve">如果 reviver 返回一个有效值,则成员值将替换为转换后的值。


reviver returns the same value it received, the member value is not modified." xml:space="preserve">如果 reviver 返回它接收的相同值,则不修改成员值。


reviver returns null or undefined, the member is deleted." xml:space="preserve">如果 reviver 返回 null 或 undefined,则删除成员。



返回值



 

一个对象或数组。


异常



 

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


 

text argument to comply with JSON syntax." xml:space="preserve">修改 text 参数以遵循 JSON 语法。BNF syntax notation of JSON objects.' xml:space="preserve">有关更多信息,请参见 JSON 对象的 BNF 语法表示法

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


JavaScript
复制

var fixedResponse = response.responseText.replace(/\\'/g, "'");
var jsonObj = JSON.parse(fixedResponse);


 

text argument was serialized by a JSON-compliant implementation such as JSON.stringify." xml:space="preserve">确保通过 JSON 兼容的实现(如 JSON.stringify)对 text 参数进行序列化。


 

text argument in a JSON validator such as JSLint to help identify syntax errors.' xml:space="preserve">在 JSON 验证程序(如 JSLint)中运行 text 参数以帮助找到语法错误。


Exception Condition

JSON.parse to convert a JSON string to an object." xml:space="preserve">以下示例使用 JSON.parse 将 JSON 字符串转换成对象。


JavaScript
复制

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, and then converts the string back to an array by using JSON.parse. " xml:space="preserve">以下示例演示了如何使用 JSON.stringify 将数组转换成 JSON 字符串,然后使用 JSON.parse 将该字符串重新转换成数组。


JavaScript
复制

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 function is often used to transform JSON representation of International Organization for Standardization (ISO) date strings into Coordinated Universal Time (UTC) format Date objects." xml:space="preserve">reviver 函数通常用于将国际标准化组织 (ISO) 日期字符串的 JSON 表示形式转换为协调世界时 (UTC) 格式 Date 对象。JSON.parse to deserialize an ISO-formatted date string." xml:space="preserve">此示例使用 JSON.parse 来反序列化 ISO 格式的日期字符串。dateReviver function returns Date objects for members that are formatted like ISO date strings.' xml:space="preserve"> dateReviver 函数为格式为 ISO 日期字符串的成员返回 Date 对象。


JavaScript
复制

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 8 和 Windows Phone 8.1)中受支持。请参阅版本信息

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


请参阅



 

JSON.stringify 函数 (JavaScript)
toJSON 方法 (Date) (JavaScript)
中心模板示例应用(Windows 应用商店)


显示: 继承 保护

  评论这张
 
阅读(27)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017