【May Be DNK】JSON.parse() and JSON.stringify()的两个实用技巧
结论
一、数据深拷贝
使用方法:JSON.parse(JSON.stringify(param))
let o = {a: 1, b: 2}
let o1 = JSON.parse(JSON.stringify(o))
let o2 = o
console.log(o === o2) // true
console.log(o === o1) // false
二、数据过滤
对一个对象中的数据进行处理,譬如过滤掉对象中值为null/undefined的键,我们通常会用Object.keys()逐个遍历key。
现在,我们可以这样做:
let o = {
a: 1,
b: null,
c: 'hello'
}
let replacer = (k, v) => {if (v) return v})
let s = JSON.stringify(o, replacer)
let res = JSON.parse(s)
> res
< {a: 1, c: "hello"}
// 或者
s = JSON.stringify(o)
res = JSON.parse(s, replacer)
> res
< {a: 1, c: "hello"}
详细介绍
JSON,全称是JavaScript Object Notation(JavaScript 对象表示法),是一种轻量、可读性高的数据结构。
和XML类似,它主要用于服务器和web应用之间的数据传输。
键值对(Keys and Values)
构成JSON的两个重要部分是键和值。它们一起组成一个键值对:
Key:一个键通常被一对双引号包裹住。
Value: 有效值是string, number, array, object, null, false, true中的一种(无undefined)。
Key/Value Pair:键值对遵循特定的语法,行如key: value,键值对以逗号分隔。
JavaScript 中的JSON对象有两个方法:parse、stringify,用来处理JSON格式的数据。
1.JSON.stringify(value[, replacer[, space]])
JSON.stringify() 将一个 JavaScript 对象转化成一个 JSON 字符串。
stringify 函数有两个可选参数:replacer and space.
// converting a simple javascript object to JSON object
let my_details = {
"name" : "John",
"age " : "31" ,
"photo" : "
【May Be DNK】JSON.parse() and JSON.stringify()的两个实用技巧的更多相关文章
- JSON.parse() 和 JSON.stringify()
JSON.parse()和JSON.stringify() 1.parse 用于从一个字符串中解析出json 对象.例如 var str='{"name":"cpf& ...
- arguments.callee 调用函数自身用法----JSON.parse()和JSON.stringify()前端js数据转换json格式
arguments.callee 调用函数自身用法 arguments.callee 在哪一个函数中运行,它就代表哪个函数. 一般用在匿名函数中. 在匿名函数中有时会需要自己调用自己,但是由于是匿名函 ...
- 有关javascript中的JSON.parse和JSON.stringify的使用一二
有没有想过,当我们的大后台只是扮演一个数据库的角色,json在前后台的数据交换中扮演极其重要的角色时,作为依托node的前端开发,其实相当多的时间都是在处理数据,准确地说就是在处理逻辑和数据(这周实习 ...
- JSON.parse和JSON.stringify 参数详解
JSON.parse和JSON.stringify这两个浏览器自带(IE6/7除外)的方法平常我们经常用到,但是一般都只是用到了他们的第一个参数,比如字符串转对象:JSON.parse('{}') ...
- Jquery里面种的 JSON.parse() 与JSON.stringify() 的区别
JSON.parse()与JSON.stringify()的区别 JSON.parse()[从一个字符串中解析出json对象] Demo: //定义一个字符串 var data='{"N ...
- JSON.parse与JSON.stringify
JSON:JavaScript Object Notation(JavaScript对象表示法):甚至我们就可以大致认为JSON就是Javascript的对象,只不过范围小上一些. JSON的MIME ...
- JSON.stringify()方法是将一个javascript值(对象或者数组)转换成为一个JSON字符串;JSON.parse()解析JSON字符串,构造由字符串描述的javascript值或对象
JSON.stringify()方法是将一个javascript值(对象或者数组)转换成为一个JSON字符串:JSON.parse()解析JSON字符串,构造由字符串描述的javascript值或对象
- JSON.parse()和JSON.stringify()的解析与用途
JSON.parse()和JSON.stringify()的解析与用途 1.parse用于从一个字符串中解析出json对象 如: var str = '{"name":" ...
- JS之JSON.parse和JSON.stringify
这两个函数有兼容性问题, 会报错JSON"未定义 解决方案, 引入json2.js,可以解决浏览器的兼容性 https://link.jianshu.com/?t=https://githu ...
随机推荐
- 三连击(NOIP1998)
题目链接:三连击 典型的打表题,但cgg今天不是教你怎么打表的,而是教你正解. 这题方法多样,比如递归求解也行,反正数据也不大. 在这里我提供另一种思路,我们枚举第一个数,即最小的一个数,然后分解它以 ...
- canvas 实现时钟效果
var clock = document.getElementById('clock'); var cxt = clock.getContext('2d'); function drawClock() ...
- GCC选项之-M
大多数的C/C++编译器都支持一个“-M”的选项,即自动找寻源文件中包含的头文件.举个例子,比如mian.c包含有如下头文件. #include <stdio.h> #include &q ...
- 【转】mysql 解事务锁
ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction 原创 2014年07月31日 10:59:43 5 ...
- 2018.11.05 NOIP模拟 列队(差分约束)
传送门 直接建边跑差分约束就可以了. 代码
- 2018.11.03 NOIP模拟 树(长链剖分优化dp)
传送门 考虑直接推式子不用优化怎么做. 显然每一个二进制位分开计算贡献就行. 即记录fi,jf_{i,j}fi,j表示距离iii这个点不超过jjj的点的每个二进制位的0/10/10/1个数. 但直接 ...
- denyhost部署
部署 tar xzf DenyHosts-2.6.tar.gz -C /uc cd /uc/DenyHosts-2.6 python setup.py install running install ...
- idea intellij对Spring进行单元测试
1.加入Junit4及SpringJUnit4支持 <!-- junit --> <dependency> <groupId>junit</groupId&g ...
- DDR II中的延时参数
CL (CAS latency) CL是从读命令发出到有效数据到DDR端口的延时,以时钟为单位.下图分别表示CL = 3和CL = 4的两种情况, 如果读命令在第n个时钟周期发出,CL = m,则读 ...
- c#转换XML文件和json对象
创建.XML文件string xml = @"<?xml version=""1.0"" standalone=""no&q ...