JSON.stringify()及其使用场景

JSON.stringify()及常用使用场景

JSON.stringify()是一个序列化对象的方法可接收三个参数。第一个参数是要序列化的对象,第二个参数是过滤器,可以是数组或函数;第三个参数是用于缩进结果JSON字符串的选项。

一、过滤器参数

  1. 如果第二个参数是数组:
    此时数组中的属性就对应着要序列化的对象中的属性["title","author"]。所以此时序列化后的JSON字符串中只包含title和author。
let book = {title:'活着',author:'余华',protagonist:'福贵'}
let jsonText = JSON.stringify(book,["title","author"]);
console.log(jsonText)
// {"title":"活着","author":"余华"}
  1. 如果第二个参数是函数:
    此时函数里面基于key进行了过滤,如果key===’title‘返回undefined忽略该属性,否则返回value。所以最终的到的字符串是这样的 {"author":"余华","protagonist":"福贵"}
let book = {title:'活着',author:'余华',protagonist:'福贵'}
let jsonText = JSON.stringify(book,(key, value)=>{if(key === 'title'){return undefined} return value;
});
console.log(jsonText)
// {"author":"余华","protagonist":"福贵"}

二、字符串缩进

JSON.stringify()方法的第三个参数控制缩进和空格。在这个参数是数值时,表示每一级缩进的空格数。如果你缩进的时候用的是一个字符串而非数值,那JSON字符串就会使用这个字符串而不是空格来进行缩进。

  1. 例如,每级缩进4个空格(缩进最大值为10),可以这样:
let book = {title:'活着',author:'余华',protagonist:'福贵'}
let jsonText = JSON.stringify(book, null, 4);

此时得到的结果就如下:
在这里插入图片描述
2. 如果是非数值时是这样:
在这里插入图片描述

toJSON方法

这里book对象中定义的toJSON()方法返回了title,这个对象会被序列化为简单字符串而非对象。toJSON()方法可以返回任意序列化值。

let book = {title:'活着',author:'余华',protagonist:'福贵',obj:{age:18},toJSON:function(){return this.title}
}
let stringify1 = JSON.stringify(book)
console.log(stringify1) // "活着"

JSON.stringify()的常用使用场景

  1. 存储localStorage
let book = {title:'活着',author:'余华',protagonist:'福贵'}
// 存
localStorage.setItem('storageDemo',JSON.stringify(book))
// 取
let newData =  JSON.parse(localStorage.getItem('storageDemo'))console.log(localStorage.getItem('storageDemo'))
// '{"title":"活着","author":"余华","protagonist":"福贵"}'
console.log(newData)
// {title: '活着', author: '余华', protagonist: '福贵'}
  1. 深拷贝
let book = {title:'活着',author:'余华',protagonist:'福贵'}
let book2 = JSON.parse(JSON.stringify(book));
  1. 删除对象属性
let book = {title:'活着',author:'余华',protagonist:'福贵'}
let jsonText = JSON.stringify(book,(key, value)=>{if(key === 'title'){return undefined} return value;
});
console.log(jsonText)
// '{"author":"余华","protagonist":"福贵"}'

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/47600.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java反射使用总结

一、反射概述 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。…

Jeesite 4.0 学习笔记

Jeesite简介 Jeesite是一个 Java EE 企业级快速开发平台。 框架:SpringBoot SpringMVC Apache Shiro MyBatis Beetl(模板) Boostrap AdminLTE(UI) 核心模块:组织机构、角色用户、菜单及按钮授权、数…

[英美文化][UMOOCs][英美概况]unit1-7答案分享

自做答案分享 --若有侵权,请联系我删除--

商业研究(14):出境游和自由行,接机-送机-包车-当地玩乐

2015年10月,在36Kr股权众筹平台,参与投资了一个旅游类的项目。 这个项目,主要是做海外出境游,中文接机、中文送机、中文包车,未来可能会有当地玩乐等旅游类项目。 现在过去大概7个月了,进一步熟悉了这个旅游…

4000 essential English words打卡学习训练营

很多同学让我讲一讲4000 essential english words 这套教材,今天就详细介绍一下这套教材,附带导学视频,具体如下: 一、教材介绍 The 600 words in each book of this series along with the additional target words presented …

【英语】新走遍美国总结

新走遍美国简介 新美也叫纵横美国,connect with English,本来想找一个像旧美--Family Album USA一样高大上的名字,然而,没找到。主要叙述了主角Rebecca的故事,大概情节就是: 楔子:vocal系女…

English Learning - L3 综合练习 3 VOA-Food 2023.05.17 周三

English Learning - L3 综合练习 3 VOA-Food 2023.05.17 周三 句 1句 2句 3句 4句 5句 6句 7句 8句 9句 10句 11句 12句 13句 14句 15结尾:注意力和记忆力,都是需要开垦的 句 1 注意后面的介词短语是当定语的 我们提供更多有关食物的表达。 they are f…

社交娱乐类APP出海攻略

据数据研究机构艾瑞咨询发布的《2022年移动应用出海趋势洞察白皮书》显示,中国娱乐类APP出海呈现井喷式收入增长,仅2021年,中国娱乐类应用软件出海收入就增长了204%。如此广阔向好的出海前景也极大地调动了国内应用开发者的积极性。2022年&am…

XJTU 新闻英语阅读微课内容总结

本文内容整理自西安交通大学英语在线学习平台 文章目录 第一节为什么读新闻不同分类硬新闻与软新闻对比新闻的特点英国著名报纸美国著名报纸报纸封面 新闻标题特征例子 标题的修辞手法Lexical features of Headlines1.Abbreviations and acronyms2.Clipped Words3.Midget words…

Pandas做股票预测

数据集来源于yahoo财经股票数据。下载方式: import pandas_datareader.data as web ## 使用 pandas-datareader 来读取股票数据 start datetime.datetime(2010, 1, 1) end datetime.datetime(2017,12,31) prices web.DataReader(002578.SZ, yahoo, start, end) p…

bp神经网络预测股票价格,bp神经网络股价预测

bp神经网络股票价格预测的MATLAB编程 。 P[];‘输入,开盘价,最高价,最低价,收盘价成交量依次5天的数据’T[];’输出,即第二日的收盘’netnewff(minmax(P),[7,1],{tansig,logsig},traingdx);net.trainParam.epochs100…

Backtrader(二十三)- 多股票回测

多数据策略跌代表详解 场景:有多个相同时间粒度的股票数据参与策略,不同股票数据时间并不一致 日期 开盘 收盘 最高 最低 成交量 成交额 振幅 \ 0 2020-12-22 38.44 33.67 38.44 32.96 89625 582730960.0 …

玩转天猫精灵(一)dtu配置

设备刷dtu固件 一机一密,根据复制的信息填写好 topic直接复制粘贴过来,注意订阅发布位置不要错了 数据绑定串口1,启用串口1 硬件连接串口1打开串口助手,我们在云平台在线调试发送一条控制指令 我们就可以接受到消息,根…

【TB-02模组专题⑦】TB02二次开发玩转各种接入天猫精灵智能家居产品,彩灯、灯具、插座、单火线总有一款适合你。

本<安信可ble mesh蓝牙模组TB-02模组专题>系列博客学习由官方博客 CSDN安信可博客 潜心所力所写。如有不对之处&#xff0c;请留言&#xff0c;我们及时更改。 1、BLE MESH开发环境linux版搭建&#xff0c;点亮一盏LED灯。 2、简单学习如何对接天猫精灵语音控制的过程…

天猫精灵云云对接

天猫精灵云云对接 一.技能开发二.产品开发 接入过程出现了一些问题&#xff0c;特此记录&#xff0c;用来给朋友们参考&#xff0c;随意记录&#xff0c;不接受批评。 前情提要&#xff1a;注册并认证 天猫精灵开放平台 | AliGenie 一.技能开发 1.创建技能 2.技能服务设置(可以…

淘宝天猫价格监控接入方案

电商市场的兴起&#xff0c;让很多人看到了电商发展的前景&#xff0c;纷纷开始涉足电商。但由于门槛低、利润高&#xff0c;一些卖家开始打起了低价促销的主意。很多品牌方在面对这些现象时都非常苦恼&#xff0c;随着这类乱价现象的逐年加剧&#xff0c;许多品牌厂商都选择做…

天猫精灵云云接入

1&#xff1a;整体流程 2&#xff1a;服务器配置https 就是申请一个证书&#xff0c;把证书配置到tomcat中 3&#xff1a;去天猫精灵开发平台 网址&#xff1a;AliGenie - 语音开发者平台 3.1&#xff1a;添加技能 1 这里配置的路径是以后设备发现访问的网址&#xff0c;…

天猫精灵是干啥的

听&#xff1a;听歌&#xff0c;听新闻&#xff0c;听故事&#xff0c;听笑话&#xff0c;听它发癫。查&#xff1a;查天气&#xff0c;查快递&#xff0c;查信息&#xff0c;查购物等等。控&#xff1a;控制智能家居陪&#xff1a;娃&#xff0c;陪老人&#xff0c;陪自己解闷…

天猫精灵如何和我们聊天?

简介&#xff1a; 天猫精灵已经走过几年的历史&#xff0c;在这几年中&#xff0c;天猫精灵变得更加智能&#xff0c;其中的体现之一是交互方式变得越来越自然。本文将介绍天猫精灵的全双工自然对话交互方式。 什么是全双工自然对话&#xff1f; 如果孙悟空的金箍棒加入天猫精…

【工程师整活】Ai-WB1-A1S实现离线语音+APP+天猫精灵控制风扇

文章目录 前言一、控制主板二、转接板原理图三、接线与烧录1.转接板接线2.固件烧录 四、离线语音功能五、App 控制功能1.云平台产品创建2.添加设备3.五元组烧录4.进入配网4.设备控制 五、天猫精灵控制功能六、联系我们 前言 对于Ai-WB1模组&#xff0c;大家可能还没有多少印象…