JSON.stringify用法

JSON.stringify() 是 JavaScript 中用于将 JavaScript 对象转换为 JSON 字符串的函数。它接受三个参数:

  1. value:要转换为 JSON 字符串的 JavaScript 对象。
  2. replacer(可选):一个函数或数组,用于在字符串化过程中过滤或转换属性。
  3. space(可选):用于在 JSON 字符串中插入缩进、空格或字符串,以提高可读性。

参数解释:

  • value:这是你想要转换为 JSON 字符串的 JavaScript 对象。例如,一个对象或数组。
  • replacer:这个参数可以是一个函数或一个数组。如果是一个函数,它将对每个键值对进行处理;如果是一个数组,它将只包含这些键的值。如果不提供这个参数,所有的键值对都会被包含在结果中。
  • space:这个参数用于控制生成的 JSON 字符串的可读性。它可以是一个数值,表示缩进的空格数(最大为 10);也可以是一个字符串,表示用于缩进的字符(最多提供 10 个字符)。如果设置为 null 或不提供,生成的 JSON 字符串将没有额外的空格或换行。

示例:

  1. 基本用法

    const jsonData = { name: 'Alice', age: 30 };
    const jsonString = JSON.stringify(jsonData);
    console.log(jsonString);
    // 输出: {"name":"Alice","age":30}
    
  2. 使用 null, 2 参数

    const jsonData = { name: 'Alice', age: 30 };
    const jsonString = JSON.stringify(jsonData, null, 2);
    console.log(jsonString);
    /* 输出:
    {
      "name": "Alice",
      "age": 30
    }
    */
    
    • null:表示不使用任何过滤或转换函数。
    • 2:表示使用两个空格进行缩进,使生成的 JSON 字符串更易读。
  3. 使用数组作为 replacer

    const jsonData = { name: 'Alice', age: 30, email: 'alice@example.com' };
    const jsonString = JSON.stringify(jsonData, ['name', 'email'], 2);
    console.log(jsonString);
    /* 输出:
    {
      "name": "Alice",
      "email": "alice@example.com"
    }
    */
    
    • ['name', 'email']:表示只包含 nameemail 属性在生成的 JSON 字符串中。
  4. 使用函数作为 replacer

    const jsonData = { name: 'Alice', age: 30, email: 'alice@example.com' };
    const jsonString = JSON.stringify(jsonData, (key, value) => {
        if (key === 'email') {
            return undefined;  // 移除 'email' 属性
        }
        return value;
    }, 2);
    console.log(jsonString);
    /* 输出:
    {
      "name": "Alice",
      "age": 30
    }
    */
    
    • (key, value) => { ... }:表示对每个键值对进行处理,如果 key'email',则返回 undefined 以移除该属性。

总结:

JSON.stringify(jsonData, null, 2) 的作用是将 jsonData 对象转换为格式化的 JSON 字符串,使用两个空格进行缩进,使结果更易读。这在调试或生成可读性强的配置文件时非常有用。

如果你有更多问题或需要进一步的解释,请随时提问!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

24.redis高性能

Redis的单线程和高性能 Redis是单线程吗? Redis 的单线程主要是指 Redis 的网络 IO 和键值对读写是由一个线程来完成的,这也是 Redis 对外 提供键值存储服务的主要流程。 Redis 的多线程部分,比如持久化、异步删除、集群数据同步等&#xff…

C# 委托简述

1.委托 1.1什么是委托 委托委托 官网解释: 委托是安全封装方法的类型,类似于 C 和 C 中的函数指针。 与 C 函数指针不同的是,委托是面向对象的、类型安全的和可靠的。 委托的类型由委托的名称确定。 个人理解:委托就是一个方法的模板。它可以接收…

关于bp抓不到本地包

关于bp抓不到本地包 关于bp抓不到本地包 关于bp抓不到本地包 pikachu练习时,发现用bp抓本地(127.0.0.1)数据包时,竟然直接放行访问。 是因为系统默认127.0.0.1无法使用代理,因此bp才抓不到本地数据包,需要…

Python入门:Python如何强制终止程序(如何强制终止多线程程序)

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 文章内容 📒📝 优雅的退出📝 强制的终止📝 应用场景对比🚀 优雅的退出🚀 强制的终止⚓️ 相关链接 ⚓️📖 介绍 📖 在开发过程中,有时候需要在满足一些条件的情况下让程序强制终止运行?今天我们将了解一下 Py…

Apifox「定时任务」进阶指南:监控、爬虫的自动化之旅

定时任务能干啥??? 它能做的自动化操作实在太多了。先给大家列几个常见的,比如: 社交媒体动态监控:定时跟踪特定用户的动态,监控热门话题和趋势 数据采集与分析:定时爬取网站的文章…

机器学习学习笔记-20241018

继续跟着小土堆去学习机器学习 文章目录 Flatten1. Flatten 的作用2. 何时使用 Flatten3. PyTorch 中的 Flatten Sequentia优化器模型的保存与加载模型的完整训练 Flatten 在神经网络中,Flatten 操作是将高维的输入(如二维图像或三维特征图&#xff09…

ArcGIS 10.8 安装教程

目录 一、ArcGIS10.8二、安装链接三、安装教程四、ArcGIS实战 (一)ArcGIS10.8 1. 概述 ArcGIS 10.8是由美国Esri公司开发的GIS平台,用于处理、分析、显示和管理地理数据,并实现数据共享。它具有新特性和功能,性能更…

C++ 设计模式 - 每日持续更新中

设计模式的核心 - 隔离程序的变化点和稳定点 零:面向对象设计八大原则 ①:依赖倒置(Dependency Inversion Principle) 高层模块不应依赖于低层模块,二者都应依赖于抽象:这意味着程序的高层逻辑不应该直接依赖于具体实现&#xf…

探索 SVG 创作新维度:svgwrite 库揭秘

文章目录 **探索 SVG 创作新维度:svgwrite 库揭秘**背景介绍库简介安装指南基础函数使用实战场景常见问题与解决方案总结 探索 SVG 创作新维度:svgwrite 库揭秘 背景介绍 在数字艺术和网页设计领域,SVG(Scalable Vector Graphic…

QT:MaintenanceTool 模块安装工具

QT的MaintenanceTool 工具对已安装的 Qt 进行卸载、修复等其他操作时提示At least one valid and enabled repository required for this action to succeed 解决方式:在设置中添加一个临时的仓库 https://mirrors.tuna.tsinghua.edu.cn/qt/online/qtsdkrepositor…

Serv00 免费虚拟主机 零成本搭建 PHP / Node.js 网站

本文首发于只抄博客,欢迎点击原文链接了解更多内容。 前言 Serv00 是一个提供免费虚拟主机的平台,包含了 3GB 的存储空间和 512MB 的内存空间,足够我们搭建一个 1IP 的小网站了。同时他还不限制每月的流量,并提供了 16 个数据库&…

【深度学习代码调试5】标准化数据集:TensorFlow Datasets (TFDS)自动化数据加载与预处理

【标准化数据集】TensorFlow Datasets、TFDS:自动化数据加载与预处理 写在最前面1. 什么是 TensorFlow Datasets (TFDS)?主要特点: 2. TFDS 的核心 API:tfds.builder 和 download_and_preparetfds.builder:创建数据集构建器示例&…

FPGA实现PCIE视频采集转USB3.0输出,基于XDMA+FT601架构,提供3套工程源码和技术支持

目录 1、前言工程概述免责声明 2、相关方案推荐本博已有的PCIE方案本博已有的USB通信方案 3、PCIE基础知识扫描4、工程详细设计方案工程设计原理框图电脑端视频PCIE视频采集QT上位机XDMA配置及使用XDMA中断模块FDMA图像缓存FT601功能和硬件电路FT601读时序解读FT601写时序解读U…

【源码+文档】基于JavaWeb的村民健康管理平台【提供源码+答辩PPT+参考文档+项目部署】

作者简介:✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流。✌ 主要内容:🌟Java项目、Python项目、前端项目、PHP、ASP.NET、人工智能…

未来医疗:大语言模型如何改变临床实践、研究和教育|文献精析·24-10-23

小罗碎碎念 这篇文章探讨了大型语言模型在医学领域的潜在应用和挑战,并讨论了它们在临床实践、医学研究和医学教育中的未来发展。 姓名单位名称(中文)Jan Clusmann德国德累斯顿工业大学埃尔朗根弗雷斯尼乌斯中心数字化健康研究所Jakob Nikola…

光纤传感器比传统传感器强在哪?——以大坝监测为例

应用介绍 大坝安全监测中心经常对当前工程中的大坝进行检查, 以确保水电站的安全运行。 大坝原有的观测模式是传感器加上人工观测模式,多数传感器经过多年运行后逐渐老化,出现测点损伤,且精度无法与现有光纤传输传感器相比,受现…

Django+Vue全栈开发项目入门(一)

Vue项目搭建过程 1、使用脚手架工具搭建项目 2、准备静态资源 3、调整生成项目结构 使用脚手架工具搭建项目 网络请求库axios Axios是一个基于Promise的HTTP库,适用于浏览器和node.js环境,用于发送网络请求。 特点 跨平台性:Axios既可…

Unity Apple Vision Pro 保姆级开发教程-环境配置、导入 PolySpatial 案例、程序发布到设备

视频教程 Unity 环境配置、导入 PolySpatial 案例、程序发布到设备 Unity Vision Pro 中文课堂教程地址: Unity3D Vision Pro 开发教程【保姆级】 | Unity 中文课堂 教程说明 这期教程我将介绍使用 Unity 开发 Apple Vision Pro 应用所需要的 Unity 环境配置&…

python实现投影仪自动对焦

这是一款投影仪,它带有对焦摄像头 它是如何自动对焦的呢? 我们先看一下对焦算法展示效果 说明:左侧是原视频,右侧是对调焦后的视频帧展示,如果下一帧视频比当前帧清晰就会显示下一帧,否则,还是显示当前帧,直至找到更清晰的帧 原理说明: 在投影仪上对焦摄像头就会实…

CDP和数据仓库怎么选?

一、CDP 是什么? 1.定义: CDP 全称是Customer Data Platform(客户数据平台)。是一种营销技术工具,它能够将来自不同渠道和系统(如网站、移动应用、客户服务系统、营销自动化平台、社交媒体等)…