JSON:JavaScript Object Notation (javascript 对象表示方法),它是一种数据格式,不是一种编程语言。JSON并不属于JavaScript,而且并不是只有JavaScript才使用JSON,毕竟JSON只是一种数据格式。很多编程语言都有针对JSON的解析器和序列化器。
JSON可以表示三种类型的值:
1.简单值;
2、对象;
{
“name”:“mwtopfire”,
“age” :12
}
3.数组 : [25, "hi", true]
JSON之所以很实用流行,是因为JSON数据结构可以解析为有用的JavaScript对象。
JSON对象有两种方法:stringify()和parse()。分别用于将JavaScript对象序列化为JSON字符串和把JSON字符串解析为JavaScript对象或数组,使用eval()方法也可以解析并返回JavaScript对象和数组。但是在旧版本的浏览器中,使用eval()方法对JSON数据结构求值存在风险,因为可能会执行一些恶意代码。
序列化(Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程(来自“百度百科—序列化“,学术性强,略显高端);
对JavaScript对象的序列化是为了更好的将数据保存到磁盘里防止断电丢失数据。
代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>JSON</title>
</head>
<body>
<script type="text/javascript">
var object= {
"name":"mwtopfire",
"age":20,
"title":"Nicholas",
"major":"Internet",
"releaseDate":new Date(2016,7,2)
};
//第二个参数是一个数组,是要将序列化的结果只包含数组中的元素属性
var jsonText = JSON.stringify(object,["title","major","releaseDate"]); //js对象的序列化
var jsonobject = JSON.parse(jsonText,function(key,value){ //反序列化
if(key == "releaseDate"){ //key为键值
return new Date(value);
}else{
// alert(value);
return value;
}
});
alert(jsonobject.releaseDate.getFullYear());
alert(jsonText);
alert(jsonobject.releaseDate);
</script>
</body>
</html>