JSON-数据存储

json:是一种数据格式,在服务器和客户端之间传输的数据格式

json使用场景:

1 网络数据的传输json数据

2 项目的某些配置文件

3 非关系型数据库,将json作为存储格式 (直接将json存到数据库)

json支持三种类型的值:json不支持注释

简单值:数字,字符串(不支持单引号),布尔值, null类型(不支持undefined)

"abc"

对象值:由key,value 组成,key是字符串类型,必须是双引号,值可以是简单值,对象值,数组值

{
  "a":123,
  "b":false,
  "c":[1,2,3]
}

数组值:数组值可以是简单值,对象值,数组值


[
  123,
 {

  "b":false,
  "c":[1,2,3]
}
]

给localStorage存值:

const obj = {
  name:'wy',
  age:18,
  friends:{
    name: 'John',
  },
  like:['eat','paly']
};
// 存到localStorage  第二个参数要字符串类型 第二个参数是[object,Object]
localStorage.setItem('obj',obj) 
// 将obj转成json字符串
objString = JSON.stringify(obj)
localStorage.setItem('obj', objString) 
const jsonString  = localStorage.getItem('obj')
// 将json 格式字符串转为对象
const info = JSON.parse(jsonString)

 

 stringify的第二个参数replacer

// 将obj转成json字符串
objString = JSON.stringify(obj)
console.log(objString,'objString');
// stringify第二个参数replacer
//  1传入数组 
objString2 = JSON.stringify(obj,["name","age"])
console.log(objString2,'objString2');
//  2传入回调函数
objString3 = JSON.stringify(obj, (key, value) => {
  if(key === 'age') {
    return value+1
  }
  return value
})
console.log(objString3, 'objString3');

  stringify的第三个参数replacer

objString = JSON.stringify(obj)
console.log(objString,'objString');
// stringify第三个参数replacer 数字/字符串 控制缩进
objString2 = JSON.stringify(obj,null,2)
console.log(objString2,'objString2');

 

objString2 = JSON.stringify(obj,null,‘==’)
console.log(objString2,'objString2');

来,我们见识一下toJSON的厉害 (可以固定最终转成的形式)

const obj = {
  name: 'wy',
  age: 18,
  friends: {
    name: 'John',
  },
  like: ['eat', 'paly'],
  toJSON:function(){
    return '看我的'
  }
};
// 将obj转成json字符串
objString = JSON.stringify(obj)
console.log(objString,'objString');
// stringify第三个参数replacer 数字/字符串 控制锁进
objString2 = JSON.stringify(obj,null,'==')
console.log(objString2,'objString2');

 JSON.stringify+JSON.parse实现对象拷贝

 赋值:同一片内存

const obj = {
  name: 'wy',
  age: 18,
  friends: {
    name: 'John',
  },
  like: ['eat', 'paly']
};
// 将obj内容放到info
// 1 引用赋值: // info 和 obj是同一片内存
   let info = obj
   obj.name = 'ww'
   console.log(info.name); // ww

浅拷贝:不同内存地址,但是里面的对象依然指向相同地址

let info2 = {...obj}
obj.name = 'ww'
obj.like.push('sleep')
console.log(info2);

深拷贝:  stringify+parse实现(不会处理函数,js不处理函数,直接移除掉,undefeated,symbol也会被忽略)

 const jsonString  = JSON.stringify(obj)
 const info3 = JSON.parse(jsonString)
 obj.name = 'ww'
 obj.like.push('sleep')
 console.log(info3,'info3');

数据存储

webStorage主要提供了一种机制,让浏览器提供了比cookie更直观的key,value存储方式

 localStorage:本地存储,永久存储,关掉网页打开,依然存在

sessionStorage:会话存储,本次会话的存储器,关掉会话存储的内容会被清除

 localStorage VS sessionStorage的一个区别:

常见属性和方法:

// 1 setItem
localStorage.setItem('name','oo')
localStorage.setItem('age', '18')

// 2 lenght localStorage.length
for(var i=0; i<localStorage.length; i++){
// 3 key方法 获取某个索引对应的key
  const key = localStorage.key(i)
  console.log(key,'key');
// 4 getItem 方法
  console.log(localStorage.getItem(key));
}
// 5 removeItem 
localStorage.removeItem('age')
// 6 clear 方法
localStorage.clear()

 

cookie 里面的数据大多都是服务器存的,服务器会有一个setCookie (客户端一般不从这存)

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用json-server删除数据的步骤: 1. 发送DELETE请求,指定要删除的数据的ID。 2. 在json-server的路由配置中,指定如何处理DELETE请求。 3. 在处理函数中,根据请求中的ID,找到要删除的数据。 4. 如果找到了数据,就将其从数据列表中删除,然后返回一个删除成功的响应。 5. 如果没有找到数据,就返回一个找不到数据的错误响应。 下面是一个详细的代码示例: ```js // 安装json-server和axios npm install json-server axios // 在package.json的scripts中添加以下命令 "json-server": "json-server --watch db.json --port 3001" // 创建一个db.json文件,作为数据存储的文件 { "users": [ { "id": 1, "name": "Alice" }, { "id": 2, "name": "Bob" }, { "id": 3, "name": "Charlie" } ] } // 在json-server的路由配置中,指定如何处理DELETE请求 // 创建一个routes.json文件,内容如下 { "/api/users/:id": { "DELETE": "/users/:id" } } // 在代码中发送DELETE请求 // 创建一个deleteUser.js文件,内容如下 const axios = require('axios'); axios.delete('http://localhost:3001/api/users/2') .then(res => { console.log(res.data); }) .catch(err => { console.error(err); }); // 在处理函数中,根据请求中的ID,找到要删除的数据 // 在json-server的db.json文件中添加一些数据 { "posts": [ { "id": 1, "title": "json-server", "author": "typicode" }, { "id": 2, "title": "axios", "author": "typicode" } ], "comments": [ { "id": 1, "body": "some comment", "postId": 1 }, { "id": 2, "body": "some comment", "postId": 2 } ] } // 在处理函数中,根据请求中的ID,找到要删除的数据 // 创建一个server.js文件,内容如下 const jsonServer = require('json-server'); const server = jsonServer.create(); const router = jsonServer.router('db.json'); const middlewares = jsonServer.defaults(); server.use(middlewares); server.use(jsonServer.rewriter({ "/api/*": "/$1" })); server.use(router); // 添加DELETE请求处理函数 router.delete('/users/:id', (req, res) => { const id = parseInt(req.params.id); const users = router.db.get('users'); const index = users.findIndex(user => user.id === id); if (index !== -1) { users.splice(index, 1); res.jsonp({ success: true }); } else { res.status(404).jsonp({ error: 'User not found' }); } }); server.listen(3000, () => { console.log('JSON Server is running'); }); ``` 这样就完成了使用json-server删除数据的详细写法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值