您的位置:首页 > Web前端 > JavaScript

Json初识总结

2017-09-19 16:47 555 查看
JSON(JavaScript Object Notation,JavaScript对象表示法),是Javascript的一个严格的子集,利用JavaScript中的一些模式来表示结构化数据。
**JSON只是一种数据格式**,不是一种编程语言。不从属于JavaScript.


1:语法

简单值:与js语法相同,可表示字符串,数值,布尔值和null。

"Hello World!"


对象:无序的键值对

/**
*没有声明变量(JSON中没有变量的概念),末尾没有分号。
*对象的属性必须加双引号。对象可嵌入对象
*/
{
"name":"wy",
"age":18,
"school":{
"name":"hust",
"location":"wuhan"
}
}


数组:有序的值的列表

[{
"name":"wy",
"age":18,
"school":{
"name":"hust",
"location":"wuhan"
}
}
]


数组和对象通常是JSON最外层形式,数组使用中括号,对象使用大括号。

2:解析与序列化

与XML数据结构要解析成DOM文档而且从中提取数据极为麻烦相比,JSON数据格式可以解析成有用的JS对象优势极其明显。
例如上面的对象保存到user变量中,获取name


/*例如上面的JSON对象保存到user变量中,js获取name*/
user[0].name
/*DOM结构中查找*/
doc.getElementsByTagName("user")[0].getAttribute("name")


JSON对象有两个方法:

stringify()——把js对象序列化为JSON字符串

parse()——把JSON字符串解析为原生js

var user = {
"name":"wy",
"age":18,
"school":{
"name":"hust",
"location":"wuhan"
}
};
var jsonText = JSON.stringify(user);
var userCopy = JSON.parse(jsonText);
/*过滤*/
var jsonText = JSON.stringify(user,["name","age"]);
/*根据属性名处理要序列化对象中的属性,返回undefined会删除该属性*/
var jsonText = JSON.stringify(user,function(key,value){
switch(key){
case "name":
return test;
case "age":
return undefined;
default:
return value;
}
});
//第三个参数用于控制结果中的缩进和空白符。
var jsonText = JSON.stringify(user,null,4);


stringify()和parse()方法还能接收参数来完成过滤,缩进,还原等功能。具体可查。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  json