zl程序教程

您现在的位置是:首页 >  后端

当前栏目

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

JS数据JSONJSON 解析 探讨 序列化
2023-06-13 09:14:45 时间
这一节我们主要讨论json的解析。
JSON.parse()方法也可以接收另一个参数,该参数是一个函数,将早每个键值对上调用。为了区别JSON.stringify()接收的替换(过滤)函数(replacer),这个函数被称作还原函数(reviver),但实际上这两个函数的签名是相同的——它们都接收连个参数,一个键和一个值,而且都需要返回一个值。

如果还原函数返回undefined,则表示要从结果中删除相应的键;如果返回其他值,则将该值插入到结果中。如:
复制代码代码如下:

<html>
<head>
<title></title>
<scripttype="text/javascript">
functioninit()
{
varstudent={
name:"Bill",
birthDate:newDate(1990,8,4)
};
varjsonText=JSON.stringify(student);
varstudentObject=JSON.parse(jsonText,function(key,value){
if(key=="birthDate")
{
returnnewDate(value);
}
else
{
returnvalue;
}
});
}
</script>
</head>
<body>
<inputtype="button"onclick="init()"value="测试"/>
</body>
</html>

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