josn字符串
json字符串
json格式的字符串
“abc123truelkgsjhgo” 普通字符串
“< h1>hgahgo< /h1>” html格式字符串
键值对格式 键和值都需要用双引号去包括 ‘“name”:“yasuo”’
json用途:
在网络传输时使用。 比如前后端交互。
不能够传输对象和数组的。
只能通过字符串形式去传输数据。
所以说我们如果要传输对象和数组,我们需要将其转换为字符串。
json格式就是满足对象和数组数据结构的一种字符串
json的使用方法:
- JSON.parse()
把json格式的字符串转为js中的数组或对象
parse() 这个方法会新创建一个对象或数组 - json.stringify()
把js中的数组或对象转为json字符串
对象: ‘{“属性名”:“属性值”,“属性名2”:“属性值2”,“属性名3”:“属性值3”}’
数组:
1.存储数组不是对象。
‘[1,2,3,4]’
2.存储数组为对象
‘[{“name”:“亚索”,“age”:“28”,“skill”:“狂风绝息斩”},{“name”:“劫”,“age”:20,“skill”:“瞬狱影杀阵”}]’
数字和布尔值可以不用带双引号
对象在转json字符串时,函数会被自动过滤掉。
示例:
<script>
var obj = {
name: "亚索",
age: "28",
skll: "哈撒给"
}
// 对象转成字符串
var str = JSON.stringify(obj);
console.log(str);
console.log(typeof str);
</script>
<script>
// 数组转成字符串
var arr = [1, 1, 5, 4, 7];
var str = JSON.stringify(arr);
console.log(str);
console.log(typeof str);
// 生成新数组
var arr2 = JSON.parse(str);
console.log(arr2);
console.log(typeof arr2);
</script>
<script>
// 生成新的对象
var str = '{"name":"提莫","join":"提莫队长正在送命"}'
var obj = JSON.parse(str);
console.log(obj);
</script>
localstorage本地存储
本地:
不会对服务器造成负担
提高访问速度
会占用本地内存
localstorage h5新增的 IE8以下不兼容 5MB
sessionstorage 5M
共同点:
都是将数据存储在本地中
只能存储字符串
区别:
localstorage 永久存储的 除非手动删除
sessionstorage 会话缓存
会话结束时失效
1.代码控制结束
2.浏览器关闭/窗口关闭
使用:
- 先考虑兼容性问题
if(!window.localStorage){
alert(“该浏览器不支持localstorage!”)
return false;
}else{
//业务逻辑
} - 将数组存储到localstorage
三种写法:
key value
storage[“name”] = “yasuo”;
storage.setItem(“name”,“sss”)
storage.age = 18; - 读取
storage[“键”];
storage.getItem(“键”)
storage.键; - 删除
storage.removeItem(“age”); - 修改:
用同一个键去赋不同的值就是修改 - 清除全部
storage.clear(); - 获取所有的键值
for (var i = 0; i < storage.length; i++) {
var key = storage.key(i);
var value = storage.getItem(key);
}
【注意】 localstorage只能存储字符串,如果将对象或者数组放入,取出来时是string类的数据。
如果要存储对象或数组,则先将对象或者数组转为json的字符串,然后再存储,需要时,取出并将其转为对象或数组使用、。
存储事件:永久存储的
同源性:
不同的域名下存储的数据是不共同的
示例
<script>
console.log(window.localStorage);
var storage = window.localStorage;
// 将数组存储到localstorage的三种写法
storage["name"