json
一、JSON
JSON叫做JavaScript Object Notation,JavaScript对象表示法
json是引用数据类型
语法:
{
k:v,
k:v,
k:v
}
<script type="text/javascript"> var obj={ 'name' :'vivi', 'age' :'18', 'sex' :'女', 'height':'178' } console.log(typeof(obj)); //object console.log(obj); console.log(obj.name); console.log(obj["name"]); </script>
调用某一项数据:
1、通过obj变量打点调用对应属性的属性
console.log(obj.name); |
2、将属性名的字符串格式放在[]中
console.log(obj["name"]); |
二、JSON的嵌套
var obj = { "name":"黄晓明", "age":50, "sex":"男", "height":178, "peiou":{ "name":"杨颖", "age":18, "height":155 } }; console.log(obj.peiou.age); //18 console.log(obj["peiou"]["age"]); //18
三、JSON的添加和删除、赋值
1.增加obj里面的项,那么就用点语法赋值
2.新增属性:添加新的自定义属性,就是用json对象的变量打点添加新的属性名,等号赋值
3.删除obj里面的项,用delete
var obj = { "name":"黄晓明", "age":50, "sex":"男", "height":178, "peiou":"杨颖" }; obj.age++; //改变属性值 obj.sex = "刚刚变完性"; //改变属性值 obj["height"] = 158; //改变属性值 console.log(obj.age); console.log(obj.sex); console.log(obj.height); delete obj.peiou;//删除peiou项 console.log(obj); //向obj添加cp项 obj.cp = { "name":"如花", "age":50, "weight":180 } console.log(obj);
四、JSON的遍历
for...in语句是专门用来遍历JSON的,for循环根据对象的属性名,从第一个开始进行遍历,直到遍历到最后一条属性,循环就结束。
for (变量 in 对象) {
在此执行代码
}
//遍历到最后一项,循环结束:k会依次等于obj里面的属性名,然后在循环语句里面,用obj[k]来读取属性值。 for(var k in obj ){ console.log(k+"的值是:"+obj[k]); }
创建一个新的json,属性名和属性值与原有的json完全相同,但不是指向同一个json原型。
不能直接用存json的一个变量直接赋值给另一个变量。
方法:创建新的json,内部数据为空,通过循环变量旧的json,得到所有的属性名添加给新的json,然后给新属性赋值
//创建新的json,必须是空json对象 var newJson = {}; //遍历旧的json,获得所有的属性名和属性值 //等号左侧,给newJson添加新属性 //等号右侧,将旧的json属性值取出来,赋值给新json对应的属性。 for(var a in obj){ newJson[a] = obj[a]; } console.log(newJson);