json数据和本地存储

文章目录

  • json数据和本地存储
    • json数据
      • 什么是JSON
      • 为什么使用JSON
      • 语法规则
      • 转换
        • 深拷贝
    • 本地存储
      • 特性
      • window.sessionStorage
      • window.localStorage
        • 记住密码案例

json数据

json是存储数据的一种格式
Javascript Object Notation(JavaScript对象表示法)

json是存储和交换文本信息的语法,类似XML,JSON比XML更小,更快更易解析

什么是JSON

  • JSON是轻量级的文本数据交换格式
  • JSON是对立与语言,使用JavaScript语法来描述数据对象
  • JSON解析器和JSON库支持许多不同的编程语言

为什么使用JSON

对应AJAX应用程序, 更快更易使用

使用json 读取json字符串 处理json字符串

语法规则

json语法是JavaScript对象表示语法的子集

  • 数据在名称/值中,
  • 数据由逗号分割
  • 大括号保存对象
  • 中括号[] 保存数组,数组可以包含多个对象
//写在双引号中   key:value
"name":"zs"

JSON值可以是 :数字(整数或浮点型),字符串,布尔值,数组,对象,null

json文件的文件类型是.json

json文本的MIME类型是application/json

转换

JSON.parse(str) 把json字符串转换为json对象

JSON.stringify(jsonObj) 把对象转换为字符串

深拷贝
<script>var obj = {id: 1,name: 'zs',msg: {age: 12,},colors: ['pink', 'red'],}// 深拷贝的第二种var o = JSON.parse(JSON.stringify(obj))o.msg.age = 9console.log(obj)
</script>

本地存储

为了满足我们各种各样的需求,会经常性的在本地存储大量的数据,HTML5规范提出了相关的解决方案

特性

  • 数据存储在用户浏览器中
  • 设置、读取方便,页面刷新不丢失数据
  • 容量较大,sessionStorage大约5M,localStorage大约20M
  • **只能存储字符串,**可以将对象JSON.stringify编码后存储

window.sessionStorage

  • 生命周期为关闭浏览器窗口
  • 在同一个窗口 (页面)下数据可以共享
  • 以键值对的形式存储使用

存储数据

sessionStorage.setItem(key,value)

读取数据

sessionStorage.getItem(key)

删除数据

sessionStorage.removeItem(key)

清空数据

sessionStorage.clear()
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title></head><body><input type="text" /><button class="set">存储数据</button><button class="get">获取数据</button><button class="remove">删除数据</button><button class="del">清空所有数据</button><script>var ipt = document.querySelector('input')var set = document.querySelector('.set')var get = document.querySelector('.get')var remove = document.querySelector('.remove')var del = document.querySelector('.del')// 设置set.addEventListener('click', function () {// 当我们点击了之后,把表单里面的值存储起来var val = ipt.valuesessionStorage.setItem('uname', val)sessionStorage.setItem('pwd', val)})// 读取get.addEventListener('click', function () {// 点击之后,把表单里面的值获取过来console.log(sessionStorage.getItem('uname'))})// 删除remove.addEventListener('click', function () {sessionStorage.removeItem('uname')})// 清空del.addEventListener('click', function () {// 清空所有的sessionStorage.clear()})</script></body>
</html>

window.localStorage

  • 生命周期永久生效,除非手动删除,否则关闭页面也会存在
  • 可以多窗口(页面)共享(同一浏览器可以共享)
  • 以键值对的形式存储使用

存储数据

localStorage.setItem(key,value)

获取数据

localStorage.getItem(key)

删除数据

localStorage.removeItem(key)

清空数据

localStorage.clear()
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title></head><body><input type="text" /><button class="set">存储数据</button><button class="get">获取数据</button><button class="remove">删除数据</button><button class="del">清空所有数据</button><script>var ipt = document.querySelector('input')var set = document.querySelector('.set')var get = document.querySelector('.get')var remove = document.querySelector('.remove')var del = document.querySelector('.del')// 设置set.addEventListener('click', function () {// 当我们点击了之后,把表单里面的值存储起来var val = ipt.valuelocalStorage.setItem('uname', val)localStorage.setItem('pwd', val)})// 读取get.addEventListener('click', function () {// 点击之后,把表单里面的值获取过来console.log(localStorage.getItem('uname'))})// 删除remove.addEventListener('click', function () {localStorage.removeItem('uname')})// 清空del.addEventListener('click', function () {// 清空所有的localStorage.clear()})</script></body>
</html>
记住密码案例
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title></head><body><input type="text" name="" id="username" /><input type="checkbox" id="remember" /> 记住用户名<script>var username = document.querySelector('#username')var remember = document.querySelector('#remember')// 判断本地是否存储if (localStorage.getItem('username')) {username.value = localStorage.getItem('username')remember.checked = true}// 复选框 的选中状态改变 进行本地存储 或者删除remember.addEventListener('change', function () {console.log(123)if (this.checked) {localStorage.setItem('username', username.value)} else {localStorage.removeItem('username')}})</script></body>
</html>

json数据和本地存储相关推荐

  1. (31)2021-01-20(JSON字符串和本地存储)

    JSON字符串和本地存储 一.json字符串 二.示例 1.对象或数组转JSON字符串 使用方法:JSON.stringify(数组或对象) 2.JSON字符串转对象或数组 使用方法:JSON.par ...

  2. 【Vue 快速入门系列】Vue数据实现本地存储、自定义事件绑定、全局事件总线、$nextTick的使用

    文章目录 一.本地存储 1.概念 2.接口 3.实际操作 二.自定义事件绑定 1.自定义事件使用过程 2.绑定自定义事件的语法 3.其他注意事项 三.全局事件总线 1.全局事件总线概念 2.全局事件总 ...

  3. 即构服务端录制SDK上线,音视频数据实现本地存储录制回放

    日常生活中,我们可能会有这些需求: 看到有趣的直播内容,会想能不能保存下来再次回看: 报名了线上的课程,家长想了解孩子的学习状态,希望能看到在线学习的过程: 金融行业,管理人员需要定期调取视频客服的服 ...

  4. unity3D数据的本地存储(xml的方式)

    数据本地的存储 第一种方式:unity自带的存储方式 PlayerPrefs.SetInt("num",num); //setFloat setString PlayerPrefs ...

  5. 浏览器上实现数据的本地存储・小结

    在客户端存储数据时,我们一般都用cookie(不敏感数据),但是在客户端越来越富的今天,cookie可存储的量(每个域最大4k)实在是小. 在HTML5中有localStorage可使用,但是这就抛弃 ...

  6. 大量json数据解析OOM 存储数据库 assets下的json压缩文件解压

    项目背景:assets包下有个json压缩文件,要求对该文件进行解压,再对解压后的json文件进行解析,并最终将数据存入数据库中.json文件包含30万条数据,文件大小是180M,由于数据量大,采用了 ...

  7. 我用JS做了一个记账本 [数据可本地存储] 附万字详解

    目录 一.本地操作

  8. 前端学习(3037):vue+element今日头条管理-把数据放到本地存储

  9. Python爬虫项目:爬取JSON数据存储Excel表格与存储图片

    随着网络的迅速发展,万维网成为大量信息的载体,如何有效地提取并利用这些信息成为一个巨大的挑战.搜索引擎(Search Engine),例如传统的通用搜索引擎AltaVista,Yahoo!和Googl ...

最新文章

  1. 解决nginx 502 bad gateway--团队的力量
  2. 存储过程能用if not exist_C++核心准则T.48:如果不能用概念,用enable_if
  3. 清华博士的逆袭路:从延毕警告到在顶刊发文,我蛰伏了四年
  4. 剖析VC中的文件操作
  5. 九、XML和Json的特点
  6. 浅析ReentrantLock重入锁
  7. android+geturl+方法,浅入浅出Android(014):HTTP GET获取文本内容
  8. wimbuilder2教程_Wimbuilder WIN10XPE制作所需的工程文件
  9. 【工程项目经验】之C不定宏参数加颜色打印
  10. CUDA程序kernel函数的运行时间限制
  11. Java编程:排序算法
  12. uniapp仿京东地址选择插件
  13. java卡 apdu_java智能卡APDU学习笔记
  14. 免费高清可商用图片素材站推荐
  15. 2009年ACM-ICPC——瑞典取双
  16. npm --save-dev --save 的区别
  17. 【网络】什么是HTTPS证书?
  18. VS2019不能安装的WIN10更新问题
  19. ps4 安卓 php,PS4遥控操作下载|PS4遥控操作 (PS4 remote play)1.0.015181官方最新版_ - 极光下载站...
  20. 2D游戏中的碰撞检测:圆形与矩形碰撞检测(JavascriptC++版)

热门文章

  1. 压缩PDF文件的一个绝妙做法
  2. 浅析copy和deepcopy
  3. 目标检测与识别算法综述:从传统算法到深度学习(二)
  4. 考研英语阅读技巧总结(唐迟)
  5. 2020磺化工艺证考试及磺化工艺考试试题
  6. 【论文-笔记】雷达/电子干扰攻防对抗信号级仿真中提高仿真速度的思考和实践
  7. 病毒感染高峰期错过考研怎么办?社科院与杜兰金融管理硕士项目是你强大的后盾
  8. 再度公开少林内修心法(易筋经和洗髓经)欢迎转载,让全人类共享学习,过得更健康!
  9. 亲爱的老狼-css三角形怎么做出来
  10. Android MTK三方算法集成学习