JSON.stringify的应用说明
前言
JSON.stringify() 方法将 JavaScript 对象转换为字符串,在日常开发中较常用,但JSON.stringify其实有三个参数,后两个参数,使用较少,今天来介绍一下后两个参数的使用场景和示例。
语法及参数说明
JSON.stringify():将 JavaScript 对象或数组转换为字符串。
语法
JSON.stringify(value[, replacer[, space]])
参数说明:
- value:
必需, 要转换的 JavaScript 值(通常为对象或数组)。 - replacer:
可选。用于转换结果的函数或数组。
如果 replacer 为函数,则 JSON.stringify 将调用该函数,并传入每个成员的键和值。使用返回值而不是原始值。如果此函数返回 undefined,则排除成员。根对象的键是一个空字符串:“”。
如果 replacer 是一个数组,则仅转换该数组中具有键值的成员。成员的转换顺序与键在数组中的顺序一样。当 value 参数也为数组时,将忽略 replacer 数组。 - space:
可选,文本添加缩进、空格和换行符。如果是数字,则表示每个级别的缩进空格数。space 也可以使用非数字,如:\t、\n、\r。
使用示例
const obj = {name: "Runoob",price: 10000,suport: "China",
};
console.log("默认转换", JSON.stringify(obj));
console.log("空格缩进", JSON.stringify(obj, null, 4));
console.log("/t缩进", JSON.stringify(obj, null, "\t"));
console.log("/n缩进", JSON.stringify(obj, null, "\n"));
console.log("/r缩进", JSON.stringify(obj, null, "\r"));
输出结果:
JSON 不允许包含函数,JSON.stringify() 会删除 JavaScript 对象的函数,包括 key 和 value。
如果需要保留函数,可以使用 replacer 函数。如果要保留对象中的函数,可以在执行 JSON.stringify() 函数前将函数转换为字符串来避免被删除。
var obj2 = {name: "Runoob",alexa: function () {return 10000;},suport: "China",
};
console.log("默认转换", JSON.stringify(obj2));
输出结果: {"name":"Runoob","suport":"China"}
从结果中可以看到,javascript中的函数被自动删除了,如果我们要保留,可以使用第二个参数replace来处理。
var obj2 = {name: "Runoob",alexa: function () {return 10000;},suport: "China",
};
//使用第二个参数,处理function函数
var toJsonStr = JSON.stringify(obj2, (key, value) => {if (typeof value === "function") {return value.toString();}return value;
});
console.log("使用replacer函数转字符串", toJsonStr);
//{"name":"Runoob","alexa":"function() {\n return 1e4;\n }","suport":"China"}// 将JSON字符串转换为JavaScript对象
let toObj = JSON.parse(toJsonStr);
// 转换为函数,此处也可以使用函数处理
toObj.alexa = eval("(" + toObj.alexa + ")");
console.log("log内容toObj.alexa()", toObj.alexa()); //10000
相关文章:

JSON.stringify的应用说明
前言 JSON.stringify() 方法将 JavaScript 对象转换为字符串,在日常开发中较常用,但JSON.stringify其实有三个参数,后两个参数,使用较少,今天来介绍一下后两个参数的使用场景和示例。 语法及参数说明 JSON.stringify()…...
pyflink datastream数据流ds经过一系列转换后转为table,t_env.from_data_stream(ds)
在 pyflink 处理数据流过程中,有时候需要将data_stream转为table,下面是正确的方式,即每一个算子(map,reduce, window)操作之后需要指定输出数据类型。 from pyflink.common.typeinfo import Types from pyflink.datastream import StreamEx…...

vxe-grid table 校验指定行单元格的字段,只校验某个列的字段
Vxe UI vue vxe-table 中校验表格行是非常简单的,只需要配置好校验规则,然后调用 validate 方法就可以自动完成校验,但是由于项目淡色特殊需求,在某个单元格的值修改后需要对另一个列的值就行校验,这个时候又不需要全部…...
【Java多线程】单例模式(饿汉模式和懒汉模式)
目录 单例模式的定义: 饿汉式--单例模式 定义: 案例: 优缺点: 懒汉式--单例模式: 定义: 1)懒汉式单例模式(非线程安全) 2)线程安全的懒汉式单例模…...

python 异步编程之协程
最近在学习python的异步编程,这里就简单记录一下,免得日后忘记。 首先,python异步实现大概有三种方式,多进程,多线程和协程;多线程和多进程就不用多说了,基本上每种语言都会有多进行和多线程的…...

现代密码学|古典密码学例题讲解|AES数学基础(GF(2^8)有限域上的运算问题)| AES加密算法
文章目录 古典密码凯撒密码和移位变换仿射变换例题多表代换例题 AES数学基础(GF(2^8)有限域上的运算问题)多项式表示法 | 加法 | 乘法X乘法模x的四次方1的乘法 AES加密算法初始变换字节代换行移位列混合轮密钥加子密钥(…...

算法沉淀一:双指针
目录 前言: 双指针介绍 对撞指针 快慢指针 题目练习 1.移动零 2.复写零 3.快乐数 4.盛水最多的容器 5.有效三角形的个数 6.和为s的两个数 7.三数之和 8.四数之和 前言: 此章节介绍一些算法,主要从leetcode上的题来讲解ÿ…...

Word_小问题解决_1
1.第二页是空白的,但是删不掉 将鼠标弄到第二页最开始的地方打开段落设置行距为固定值0.7磅 2.表格中有文字进入了表格中怎么办 打开段落,将缩进改为0即可...
基于opencv制作GUI界面
可以基于cvui头文件实现一些控件操作,头文件及demo实例 这是一个demo main.cpp #include <opencv2/opencv.hpp> #define CVUI_IMPLEMENTATION #include "cvui.h"#define WINDOW_NAME "CVUI Hello World!"int main(void) {cv::Mat frame…...

微服务即时通讯系统的实现(客户端)----(2)
目录 1. 将protobuf引入项目当中2. 前后端交互接口定义2.1 核心PB类2.2 HTTP接口定义2.3 websocket接口定义 3. 核心数据结构和PB之间的转换4. 设计数据中心DataCenter类5. 网络通信5.1 定义NetClient类5.2 引入HTTP5.3 引入websocket 6. 小结7. 搭建测试服务器7.1 创建项目7.2…...
QT使用libssh2库实现sftp文件传输
本篇文章通过用户名和密码来连接服务器端,通过密匙连接服务器端可以参考另外一篇文章: https://blog.csdn.net/u012372584/article/details/143826199?sharetype=blogdetail&sharerId=143826199&sharerefer=PC&sharesource=u012372584&spm=1011.2480.3001.…...

【Linux】进程的优先级
进程的优先级 一.概念二.修改优先级的方法三.进程切换的大致原理:四.上下文数据的保存位置: 一.概念 cpu资源分配的先后顺序,就是指进程的优先权(priority)。 优先权高的进程有优先执行权利。配置进程优先权对多任务环…...

python实现十进制转换二进制,tkinter界面
目录 需求 效果 代码实现 代码解释 需求 python实现十进制转换二进制 效果 代码实现 import tkinter as tk from tkinter import messageboxdef convert_to_binary():try:# 获取输入框中的十进制数decimal_number int(entry.get())# 转换为二进制binary_number bin(de…...

电子应用设计方案-12:智能窗帘系统方案设计
一、系统概述 本设计方案旨在打造便捷、高效的全自动智能窗帘系统。 二、硬件选择 1. 电机:选用低噪音、扭矩合适的智能电机,根据窗帘尺寸和重量确定电机功率,确保能平稳拉动窗帘。 2. 轨道:选择坚固、顺滑的铝合金轨道&…...
力扣 回文链表-234
回文链表-234 const int N 1e55; int a[N];//定义一个整形的全局数组作为辅助数组存储链表反转前的值 class Solution { /*本题的解题思路是先将链表中每个值存储到辅助数组a中,然后反转链表, 最后,反转后链表的值和没反转之前的值…...
采样率22050,那么CHUNK_SIZE 一次传输的音频数据大小设置多少合适?unity接收后出现卡顿的问题的思路
在采样率为22050的情况下,选择合适的 CHUNK_SIZE 主要取决于 Unity 接收和处理音频数据的效率。以下是设置 CHUNK_SIZE 的一些建议: 计算 CHUNK_SIZE:音频的传输数据量可以通过公式 CHUNK_SIZE 采样率 * 传输间隔秒数 * 每样本字节数 * 声道…...

网络初识--Java
一、网络通信基础 1.IP地址 IP地址主要⽤于标识⽹络主机、其他⽹络设备(如路由器)的⽹络地址。简单说,IP地址⽤于定位主 机的⽹络地址。 就像我们发送快递⼀样,需要知道对⽅的收货地址,快递员才能将包裹送到⽬的地。…...

K8S单节点部署及集群部署
1.Minikube搭建单节点K8S 前置条件:安装docker,注意版本兼容问题 # 配置docker源 wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo# 安装docker环境依赖 yum install -y yum-utils device-m…...

GPIO相关的寄存器(重要)
目录 一、GPIO相关寄存器概述 二、整体介绍 三、详细介绍 1、端口配置低寄存器(GPIOx_CRL)(xA...E) 2、端口配置高寄存器(GPIOx_CRH)(xA...E) 3、端口输入数据寄存器ÿ…...
OpenCV基础
1. 基础入门:OpenCV概念与安装 a. OpenCV简介 OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉库,广泛应用于图像和视频处理、计算机视觉、机器学习等领域。 b. 安装OpenCV Python安装: pip in…...

调用支付宝接口响应40004 SYSTEM_ERROR问题排查
在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...
day52 ResNet18 CBAM
在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...

Debian系统简介
目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版ÿ…...

YSYX学习记录(八)
C语言,练习0: 先创建一个文件夹,我用的是物理机: 安装build-essential 练习1: 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件,随机修改或删除一部分,之后…...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...
汇编常见指令
汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...

IT供电系统绝缘监测及故障定位解决方案
随着新能源的快速发展,光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域,IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选,但在长期运行中,例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

SpringCloudGateway 自定义局部过滤器
场景: 将所有请求转化为同一路径请求(方便穿网配置)在请求头内标识原来路径,然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...
css3笔记 (1) 自用
outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size:0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格ÿ…...