js解析与序列化json数据(三)

本文探讨了如何使用JSON.parse()方法解析JSON字符串,并通过还原函数处理特定类型的值,例如将字符串形式的日期转换回Date对象。通过示例代码展示了序列化与反序列化的完整过程。

  这一节我们主要讨论json的解析。
  JSON.parse()方法也可以接收另一个参数,该参数是一个函数,将早每个键值对上调用。为了区别JSON.stringify()接收的替换(过滤)函数(replacer),这个函数被称作还原函数(reviver),但实际上这两个函数的签名是相同的——它们都接收连个参数,一个键和一个值,而且都需要返回一个值。
  如果还原函数返回undefined,则表示要从结果中删除相应的键;如果返回其他值,则将该值插入到结果中。如:

<html>
<head>
    <title></title>
    <script type="text/javascript">
        function init()
        {
            var student={
                name:"Bill",
                birthDate:new Date(1990,8,4)
            };
            var jsonText=JSON.stringify(student);
            var studentObject=JSON.parse(jsonText,function(key,value){
                if(key=="birthDate")
                {
                    return new Date(value);
                }
                else
                {
                    return value;
                }
            });
        }
    </script>
</head>
<body>
          <input type="button" onclick="init()" value="测试" />
</body>
</html>

  以上代码先是为student添加了出生日期birthDate属性,该属性保存着一个Date对象。这个对象在经过序列化之后变成了有效地JSON字符串,然后经过解析又在studentObject中还原为一个Date对象。

转载于:https://www.cnblogs.com/zhuimengdeyuanyuan/archive/2013/01/21/2869834.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值