Json
Json – 存储数据,数据格式
- 文本格式
文本 – 人类可读:性能低,体积大
二进制 – 机器可读:性能高,体积小
- xml
体积庞大,冗余多
Json的写法:
//第一种key不加引号
var user = {
name : 'xiaomo',
"age" : 18
}
//第二种属性名加引号
var json1 = {
'name' : 'xiaomo',
'age' : '18',
}
//执行方法
json.name
json规范:
{
key:value,
key:value,
}
键值成对 键 – 名字 / 值 – 值
标准json
格式:
i.只能出现双引号
ii.所有的key必须有引号
简装版json
只适用于js
标准版json
(key必须双引号,字符串双引号)可用于 1.js 、 2.数据传输
数组与json的区别
数组 – 存储多个数据
- 以序号为key
arr[0]
arr[1]
- 有序(有严格的顺序)
- 循环 普通
for
for in
(不要用性能差,知道就行)
//数组循环
let arr=[12,5,8,99,27];
for (let i=0; i<arr.length;i++){
alert('第'+ i +'个:'+arr[i]);
}
json – 存储多个数据
- 以名称为key
json.name
json.age
/ json['name']
json['age']
- 无序
- 循环
for in
let json={
a:55, b:77, c:35, d:99
};
//遍历json的for循环写法
for (let i in json){
// alert(i);
alert('第'+i+'个:'+json[i]);
};
转换
JSON.stringify
json => 字符串(标准)
简易版json –》 标准json格式
let json={
a: 12, b: 17, c: 'aaa'
};
let str=JSON.stringify(json);
console.log(json , str);
// console
{a: 12, b: 17, c: "aaa"} "{"a":12,"b":17,"c":"aaa"}"
JSON.parse
字符串(标准) => json
let str='{"a":12,"b":17,"c":"aaa"}';
let json=JSON.parse(str);
console.log(json);
console.log(json.a);
//console.log(json)
{a: 12, b: 17, c: "aaa"}
// console.log(json.a)
12
属性访问
js里 .
和 []
是完全等价的
( . )点
对象.成员(东西)
[]
对象[‘成员’]
<body>
<button type="button" id="btn1">按钮</button>
<script>
// let oBtn=document.getElementById('btn1');
//
// oBtn.onclick=function (){
// alert("aaa");
// }
//属性访问
let oBtn=document['getElementById']('btn1');
let str='onclick';
oBtn[str]=function (){
alert("aaa");
}
</script>
</body>
<body>
<button type="button" id="btn1">按钮</button>
<script>
//属性访问
let oBtn=document['getElementById']('btn1');
let str='onclick';
oBtn[str]=function (){
//oBtn.style.color='red';
// oBtn.style['color']='red';
oBtn['style']['color']='red';
}
// -------------------------------------
//
// oBtn.style.color
// oBtn.style['color']
// oBtn['style']['color']
//
// -------------------------------------
</script>
</body>