详述json.stringify格式化的多个方面

一、操作简介

JSON.stringify() 方法用于将 JavaScript 值转换为 JSON 字符串。通过序列化的方式,可以将 JSON 对象转换为字符串,传输到其他的计算机或存储到本地介质上。通过反序列,也可以将字符串转化为 JSON 对象。

该方法有三个参数。第一个是序列化的JavaScript 对象;第二个是过滤器函数,可以过滤部分属性;第三个则是缩进以及间隔控制。

// 简单示例
let obj = {
    name: 'Jack',
    age: 30,
    address:{
        city: 'New York',
        state: 'NY',
        zip: 10001
    }
};

let jsonStr = JSON.stringify(obj);

console.log(jsonStr);// {"name":"Jack","age":30,"address":{"city":"New York","state":"NY","zip":10001}}

二、缩进

通过第三个参数,可以指定缩进以及间隔的字符数,使 JSON 格式化输出。如果是数字,则指定每个级别的缩进字符的数目。如果是字符串,用作缩进字符;比如“\t”。

// 简单示例
let obj = {
    name: 'Jack',
    age: 30,
    address:{
        city: 'New York',
        state: 'NY',
        zip: 10001
    }
};

let jsonStr = JSON.stringify(obj, null, '\t');

console.log(jsonStr);
// {
//     "name": "Jack",
//     "age": 30,
//     "address": {
//         "city": "New York",
//         "state": "NY",
//         "zip": 10001
//     }
// }

三、数据类型

JSON.stringify() 方法能够序列化除 symbol 类型之外的大部分 JavaScript 基础数据类型,包括字符串、数字、布尔值和 null,也能序列化对象、数组和 Map 类型等复杂数据类型。

// 简单示例
let obj = {
    name: 'Jack',
    age: 30,
    address:{
        city: 'New York',
        state: 'NY',
        zip: 10001
    }
};

let arr = [1, 2, 3, "apple", true, null, obj];

let jsonStr = JSON.stringify(arr);

console.log(jsonStr);  // [1, 2, 3, "apple", true, null, {"name":"Jack","age":30,"address":{"city":"New York","state":"NY","zip":10001}}]

四、Date 对象

JSON.stringify() 在序列化 Date 对象时,效果与 toISOString() 方法类似。

// 简单示例
let obj = {
    today: new Date()
};

let jsonStr = JSON.stringify(obj);

console.log(jsonStr); // {"today":"2022-02-22T08:00:57.150Z"}

五、函数、Symbol 和 undefined

JSON.stringify() 在序列化函数、symbol 和 undefined 时会自动将其忽略。

// 简单示例
let obj = {
    name: 'Jack',
    func: function() {
        console.log('Hello World');
    },
    age: undefined,
    sex: Symbol('Male')
};

let jsonStr = JSON.stringify(obj);

console.log(jsonStr);  // {"name":"Jack"}

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/183396.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-11-24 16:29
下一篇 2024-11-24 16:29

相关推荐

  • 为什么Python不能编译?——从多个方面浅析原因和解决方法

    Python作为很多开发人员、数据科学家和计算机学习者的首选编程语言之一,受到了广泛关注和应用。但与之伴随的问题之一是Python不能编译,这给基于编译的开发和部署方式带来不少麻烦…

    编程 2025-04-29
  • Java判断字符串是否存在多个

    本文将从以下几个方面详细阐述如何使用Java判断一个字符串中是否存在多个指定字符: 一、字符串遍历 字符串是Java编程中非常重要的一种数据类型。要判断字符串中是否存在多个指定字符…

    编程 2025-04-29
  • Python合并多个相同表头文件

    对于需要合并多个相同表头文件的情况,我们可以使用Python来实现快速的合并。 一、读取CSV文件 使用Python中的csv库读取CSV文件。 import csv with o…

    编程 2025-04-29
  • 从多个方面用法介绍yes,but let me review and configure level of access

    yes,but let me review and configure level of access是指在授权过程中,需要进行确认和配置级别控制的全能编程开发工程师。 一、授权确…

    编程 2025-04-29
  • JSON的MD5

    在Web开发过程中,JSON(JavaScript Object Notation)是最常用的数据格式之一。MD5(Message-Digest Algorithm 5)是一种常用…

    编程 2025-04-29
  • 使用Java将JSON写入HDFS

    本篇文章将从以下几个方面详细阐述Java将JSON写入HDFS的方法: 一、HDFS简介 首先,先来了解一下Hadoop分布式文件系统(HDFS)。HDFS是一个可扩展性高的分布式…

    编程 2025-04-29
  • 从多个方面zmjui

    zmjui是一个轻量级的前端UI框架,它实现了丰富的UI组件和实用的JS插件,让前端开发更加快速和高效。本文将从多个方面对zmjui做详细阐述,帮助读者深入了解zmjui,以便更好…

    编程 2025-04-28
  • 学Python用什么编辑器?——从多个方面评估各种Python编辑器

    选择一个适合自己的 Python 编辑器并不容易。除了我们开发的应用程序类型、我们面临的软件架构以及我们的编码技能之外,选择编辑器可能也是我们编写代码时最重要的决定之一。随着许多不…

    编程 2025-04-28
  • 使用easypoi创建多个动态表头

    本文将详细介绍如何使用easypoi创建多个动态表头,让表格更加灵活和具有可读性。 一、创建单个动态表头 easypoi是一个基于POI操作Excel的Java框架,支持通过注解的…

    编程 2025-04-28
  • 如何使用Newtonsoft datatable转Json

    Newtonsoft DataTable 是一个基于.NET的JSON框架,也是一个用于序列化和反序列化JSON的强大工具。 在本文中,我们将学习如何使用Newtonsoft Da…

    编程 2025-04-28

发表回复

登录后才能评论