Json.js 对象表示法 (K比较加双引号”” )
{
“K”:v,
“k”:v
}
说明: 一但加了大括号就是对象 比如 var liul{ }; 此时liul 就是对象
6.1 json创建
//创建json
var json = {
"name": "小明",
"sex": "男性",
"age": 15
};
//数据类型是对象
console.log(typeof json);
读取 对象
//读取 , 点语法 , 中括号
console.log(json.name);
console.log(json["sex"]);
设置 =
//设置 =
json.nva="女";
console.log(json["nva"]);//返回女 ,而且整个对象中也有这个参数
6.2 json删除
//删除 delete
delete json.sex;//含义 ,删除这个属性 男
console.log(json);
6.3 json嵌套
Json 可以嵌套 , 读取属性值使用连续打点或者中括号
//创建json
var json = {
"name": "小明",
"sex": "男性",
"age": 15,
"aihao":{
"aihao1":"学习1",
"aihao2":"学习2",
"aihao3":"学习3"
}
};
读取 嵌套
//json 嵌套
console.log(json.aihao)
连续打点 解析: 指定查看爱好2 ,
//连续打点
console.log(json.aihao.aihao2);
6.4 json遍历
//解析: 在json中不能使用正常的for循环语句,他是不输出的 因为json对象是无序的
for(var i= 0;i<json.length;i++){
console.log(json[i]);
console.log(1);
}
//创建json
var json = {
"name": "小明",
"sex": "男性",
"age": 15,
"aihao":{
"aihao1":"学习1",
"aihao2":"学习2",
"aihao3":"学习3"
}
};
//json 遍历K依次遍历属性名, 通过json[k]读取每一项值
//K 是接受属性名
for(var k in json){
console.log(json[k]);//输出每一项的值
}
原本自身输出是无序的
从头到位遍历出来数据 变成了有顺序的? 我的理解
6.5 json复制
对象保存的是地址
将json 中每一项的值复制一份给另一个json
//创建json
var json = {
"name": "小明",
"sex": "男",
"age": 18
};
//表示将json 地址指向json2 , 会互相影响
console.log(json);
var json2 = json;//将json 赋值到json2 保存
//给json2添加 属性
json2.height = 180;
// json2.nvpengyou="有5个";
console.log(json2);
console.log("我是json2");
//验证json
console.log(json);
console.log("被添加后的 json 已经有了json2 添加的属性,所以和json2 是一样的");
//只是将json中的值复制, 而不是将地址指向其他元素
var json3 = {};
for (var k in json) {
json3[k] = json[k];
}
//json3 和json 是两个地址
json3.weight = "50kg"//json3 添加一项值
console.log(json3);
console.log("我是json3");
console.log(json);
console.log("我是json");