一、JSON学习
1. 最简单的JSON示例
JSON叫做JavaScript Object Notation, JavaScript对象表示法。由JS大牛Douglas发明。
我们之前学习过数组:
var arr = [“东邪”,”西毒”,”南帝”,”北丐”,"中神通"]
数组很好用,arr[2] 就是南帝。
但是我们发现,数组的下标,只能是阿拉伯数字,不能是我们任意取的。
JSON的示例:
var obj = {
"name":"考拉",
"age" : 18,
"sex" : "不祥"
};
console.log(obj.age); //18
语法:
{
"k" : v,
"k" : v,
"k" : v,
"k" : v
}
访问某一个属性
- 能用点语法
.
就是“的”
obj.age; //obj这个对象的age属性 - 也可以使用 [] 来表示属性, [] 里面是变量:
var a = "age";
console.log(obj[a]); //18
如果不想用变量,必须加引号:
obj["age"] //18
2. JSON的嵌套
JSON里面,可以又是一个JSON
var obj = {
"name":"考拉",
"age" : 18,
"sex" : "不祥",
"shengao" : 193,
"peiou" : {
"name" : "Angelababy",
"age" : 16,
"shengao" : 168
}
};
所以,想得到168这个数字:
obj.peiou.shengao
或 obj[peiou][shengo]
现在只知道 Ajax 大量用到JSON。瀑布流的network里面。JSON作为大字典dictionary。
3. JSON项的添加和删除
- 增加obj里面的项,那么就用点语法赋值:
var obj = {
"name":"考拉",
"age" : 18
};
age++;//改变属性
obj.sex = "male";
console.log("age");
- 删除某一个属性,使用delete关键字:
delete obj.age;
4. JSON的遍历
无法使用 for 循环会输出 undefined,对象没有 length属性。
for…in语句是专门用来遍历JSON的语法:
for(var k in obj){
console.log(k + "的值是" + obj[k]);
}
k会依次等于我们的obj里面的属性名,然后在循环语句里面,用obj[k]来读取这个值。
5.对象的克隆:
//把obj1的属性名克隆到obj2
var obj1 = {
"name" :"花非花",
"eage" : 34,
"sex" : "male"
};
var obj2 = {};
for(var k in obj1){
obj2[k]="花非花"; //因为k是变量所以使用方括号
}