使用 JSON.parse 反序列化 ISO 格式的日期字符串, 将返回Date格式对象

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml">  
<head>  
<title>JSON.parse()</title>  
<script type="text/javascript" src="json2.js"></script>  
<script type="text/javascript">  
		//json格式
    var data='{'  
    +'"root":'  
    +'['  
    +'{"name":"1","value":"0"},'  
    +'{"name":"6101","value":"西安市"},'   
    +'{"name":"6102","value":"铜川市"},'   
    +'{"name":"6103","value":"宝鸡市"},'  
    +'{"name":"6104","value":"咸阳市"},'   
    +'{"name":"6105","value":"渭南市"},'  
    +'{"name":"6106","value":"延安市"},'   
    +'{"name":"6107","value":"汉中市"},'   
    +'{"name":"6108","value":"榆林市"},'   
    +'{"name":"6109","value":"安康市"},'   
    +'{"name":"6110","value":"商洛市"}'   
    +']'  
    +'}';   
  
  
      
    //示例1:此示例使用 JSON.parse 将 JSON 字符串转换为对象  
    
    	//未解析时,json数据没有转换成对象,不能调用
    var jsontext = '{"firstname":"Jesper","surname":"Aaberg","phone":["555-0100","555-0120"]}';  
    document.write(jsontext.surname + ", " + jsontext.firstname + ", "+ jsontext.phone) +"<br/>"; 
       //利用parse解析成对象,即可调用
    var contact = JSON.parse(jsontext);  
    document.write("json字符串未解析时:"+jsontext+"<br/>");
    document.write("json字符串通过parse解析后:"+contact+"<br/>");
    document.write(contact.surname + ", " + contact.firstname + ", "+ contact.phone);  
  
      
      
    //dateReviver  
    //var dateObj = new Date(Date.UTC('2008', +'01' - 1, +'01', +'12', +'00', +'00'))  
    //alert(dateObj.toUTCString())  
  
    //示例2:此示例使用 JSON.parse 反序列化 ISO 格式的日期字符串, 将返回Date格式对象。  
    var jsontext2 = '{ "hiredate": "2008-01-01T12:00:00Z", "birthdate": "2008-12-25T12:00:00Z" }';  
    var dates = JSON.parse(jsontext2, dateReviver);  
    document.write("<br /><br />"+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;  
    };  
  
</script>  
</head>  
<body>  
</body>  
</html>  

  

转载于:https://www.cnblogs.com/LChenglong/p/6640773.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值