JSON.stringify() 详解

JSON.stringify() 、JSON. parse()方法详解 json 阅读详情

该函数的作用是:系列化对象 
系列化对象说白了就是把对象的类型转换为字符串类型


语法

JSON.stringify(value[, replacer [, space]])

  • value 
    将要序列化成 一个JSON 字符串的值。
  • replacer 可选 
    可以为数组或函数 
    1. 如果为数组:则只有包含在这个数组中的属性名才会被序列化到最终的 JSON 字符串中,replacer作key值(这个在讲实例的时候就知道这个key是干嘛的了,先记住就好)
    2. 如果为函数:则把系列化后的每一个对象(记住是每一个)传进方法里面进行处理
  • space 可选 
    指定缩进用的空白字符串 
    1. 如果省略的话,那么显示出来的值就没有分隔符。直接输出来
    2. 如果是一个数字的话,那么它就定义缩进几个字符,范围是:0到10(数字小于1,则默认为0,大于10,则默认为10)
    3. 如果是一些转义字符,比如“\t”,表示回车,那么它每行一个回车。
    4. 如果仅仅是字符串,就在每行输出值的时候把这些字符串附加上去就OK。当然,最大长度也是10个字符

实例说明

注意:以下的输出结果都是string类型的,为了容易看就没有用单引号‘’表明是字符串类型

只有一个参数

参数为对象:

var students = new Array();
students[0] = "pika";
students[1] = "hello";
students[2] = "hey";
var json = JSON.stringify(students);
alert(json);
输出结果:["pika","hello","hey"]

如果不用JSON.stringify()函数,直接alert(students),那么

输出结果:pika,hello,hey

从这里到对比可以比较直观的看出JSON.stringify()函数的作用啦

看一下其他例子:

JSON.stringify({});                        // 输出结果:{}
JSON.stringify(true);                      // 输出结果:true
JSON.stringify("foo");                     // 输出结果:"foo"
JSON.stringify([1, "false", false]);       // 输出结果:[1,"false",false]
JSON.stringify({ x: 5 });                  // 输出结果:{"x":5}

JSON.stringify({x: 5, y: 6});              
//输出结果:{"x":5,"y":6}

JSON.stringify([new Number(1), new String("false"), new Boolean(false)]); 
//输出结果:[1,"false",false]               

从这些例子中可以看出:布尔值、数字、字符串的包装对象在序列化过程中会自动转换成对应的原始值

再看一下其他例子:

JSON.stringify({x: undefined, y: Object, z: Symbol("")}); 
// 输出结果:{}

JSON.stringify([undefined, Object, Symbol("")]);          
// 输出结果:[null,null,null]'

JSON.stringify({[Symbol("foo")]: "foo"});                 
// 输出结果:{}

JSON.stringify({[Symbol.for("foo")]: "foo"}, [Symbol.for("foo")]);
// 输出结果:{}

JSON.stringify(
    {[Symbol.for("foo")]: "foo"}, 
    function (k, v) {
        if (typeof k === "symbol"){
            return "a symbol";
        }
    }
);
//输出结果:undefined 

从这些例子中可以看出:undefined、任意的函数以及 symbol 值,在序列化过程中会被忽略(出现在非数组对象的属性值中时)或者被转换成 null(出现在数组中时)

再看最后一个例子

JSON.stringify( 
    Object.create(
        null, 
        { 
            x: { value: 'x', enumerable: false }, 
            y: { value: 'y', enumerable: true } 
        }
    )
);

从例子中可以看出:不可枚举的属性会被忽略

有两个参数,第二个参数为函数

函数例子:

 function replacer(key, value) {
  if (typeof value === "string") {
    return undefined;
  }
  return value;
}

可以看出有一个key值,一个value值,还记得一开始说的第二个参数作key值吗?

实例:

function replacer(key, value) {
  if (typeof value === "string") {
    return undefined;
  }
  return value;
}

var foo = {foundation: "Mozilla", model: "box", week: 45, transport: "car", month: 7};
var jsonString = JSON.stringify(foo, replacer);
//输出结果:{"week":45,"month":7}

就是把第一个值传去函数进行相关的处理

有两个参数,第二个参数为数组

第一个参数为数组

var students = new Array();
students[0] = "pika";
students[1] = "hello";
students[2] = "hey";
var stu= new Array();
stu[0] = "how";
stu[1] = "are";
stu[2] = "u";
var json = JSON.stringify(students,stu);
alert(json);
//输出结果:["pika","hello","hey"]

结果是只有第一个值序列化了,第二个被忽略了

第一个参数为对象

var students = new Object();
students.name = "pika";
students.age = 19;
students.qq = "12345678";
var stu= new Array();
stu[0] = "name";
stu[1] = "qq";
var json = JSON.stringify(students,stu);
alert(json);
//输出结果:{"name":"pika","qq":"12345678"}

数组的值代表将被序列化成JSON字符串的属性名 
stu数组没有“age”,所以students对象的“age”属性没有显示

有三个参数

前面说到第三个参数就是用来缩进或者直接添加字符串在序列化对象的前面,所以直接看例子就行啦,注意最多只能10个缩进或字符

JSON.stringify({ a: 2 }, null, " ");   
// 输出结果:{\n "a": 2\n}

JSON.stringify({ uno: 1, dos : 2 }, null, '\t')
/* 输出结果:
{
    "uno": 1,
    "dos": 2
}
*/

var students = new Object();
students.name = "pika";
students.age = 19;
students.qq = "12345678";
var stu= new Array();
stu[0] = "name";
stu[1] = "qq";
var json = JSON.stringify(students,stu,"test")
alert(json);
/* 输出结果:
{
test"name": "pika",
test"qq": "12345678"
}
*/

如果我们还想要精确控制如何序列化小明,可以给对象定义一个toJSON()的方法,直接返回JSON应该序列化的数据:

var xiaoming = {
    name: '小明',
    age: 14,
    gender: true,
    height: 1.65,
    grade: null,
    'middle-school': '\"W3C\" Middle School',
    skills: ['JavaScript', 'Java', 'Python', 'Lisp'],
    toJSON: function () {
        return { // 只输出name和age,并且改变了key:
            'Name': this.name,
            'Age': this.age
        };
    }
};

JSON.stringify(xiaoming); // '{"Name":"小明","Age":14}'

总结

最后来总结一下,JSON.stringify()函数是用来序列化对象的,无论输入什么,输出的都是字符串类型,可以按自己的需求来定制如何序列化,输出结果是怎样的格式

JSON.stringify() 方法详解 要转换的值(可以是一个对象、数组、基本数据类型或 null)。(可选)一个 replacer 函数或一个替换器,用于替换原对象中的某些值。(可选)一个数字,表示缩进空格数。该方法返回一个 JSON 字符串。JSON.stringify() 是一个非常有用的 JavaScript 方法,可以方便地将 JavaScript 值转换为 JSON 字符串。掌握其用法和注意事项,可以让你更高效地处理 JSON 数据。希望本文对你有所帮助。# JSON.stringify() 方法详解## 一、方法简介。 阅读详情

相关推荐

Plant Simulation新手入门:从零开始搭建工厂布局仿真模型(附完整代码)

本文为Plant Simulation新手提供了一个从零开始搭建工厂布局仿真模型的完整实战教程。通过一个玩具工厂车间布局优化的具体案例,详细讲解了从数据准备、模型构建、核心逻辑编程到连接遗传算法进行自动优化的全流程,并附有完整代码示例,帮助读者快速掌握这一工业仿真软件的核心应用。

metal的博客 552

JS中的JSON.Stringify 方法详解

在大厂的前端面试过程中,JSON.Stringify常常被问到,那么能够熟练的运用,掌握就必不可少。 那么,到底什么是 JSON.stringify 方法? 方法基本介绍 JSON.stringify 是日常开发中经常用到的 JSON 对象中的一个方法,JSON 对象包含两个方法: 用于解析成 JSON 对象的 parse(); 用于将对象转换为 JSON 字符串方法的 stringify()。 下面我们分别来看下两个方法的基本使用情况。 JSON.parse JSON.parse 方法用来解析 JSO

CRMEB小程序商城的博客 3万+

Quest 3开发第一步:搞定Meta账号登录和Oculus软件连不上设备的那些坑(2024实测)

本文详细介绍了Quest 3开发初期的关键步骤,包括Meta账号注册、Oculus软件安装与设备连接等常见问题的解决方案。针对国内开发者遇到的邮箱限制、验证码接收等难题,提供了实用的应对策略,并分享了开发环境配置和常见问题排查技巧,帮助开发者快速搭建Quest 3开发环境。

weixin_30333885的博客 491

JSON.stringify(将某个对象转换成 JSON 字符串形式)

来假设这样一个场景,后端返回了一个很长的对象,对象里面属性很多,而我们只需要其中几个属性,并且这几个属性我们要存储到。对象用于长久保存整个网站的数据,保存的数据没有过期时间,直到手动去删除。可以将对象序列化为字符串,因此我们可以借助字符串的方法来实现简单的对象相等判断。是数组时,可以简单的过滤出我们所需的属性,是一个不错的小技巧。结果不同,因此在开始之前我们需要处理一下数组中的对象。,一个快速成长中的小前端,希望可以和大家一起进步。借助上面的思想,我们还能实现简单的数组对象去重。

qq_45991812的博客 1万+

lvds接口_LVDS,接口,时序讲解,非常好的文章

欢迎FPGA工程师加入官方微信技术群点击蓝字关注我们FPGA之家-中国最好最大的FPGA纯工程师社群1.1.1 LVDS接口分类1.1.1.1 单路6bit LVDS这种接口电路中,采用单路方式传输,每个基色信号采用6位数据,共18位RGB数据,因此,也称18位或18bit LVDS接口。此,也称18位或18bit LVDS接口。1.1.1.2 双路6bit LVDS这种接口电...

weixin_39639286的博客 1901

告别蓝牙音质妥协:用ESP32和PCM5102搭建WiFi无损音频播放器(附完整代码)

本文详细介绍了如何利用ESP32微控制器和PCM5102 DAC芯片构建一套完整的WiFi无损音频流媒体系统,彻底摆脱蓝牙协议的音质束缚。从硬件原理到软件实现,包括核心器件选型、电路设计、I2S音频驱动实现以及系统优化方案,帮助音频发烧友实现高保真无线音频传输。

weixin_30733003的博客 541

JSON.stringify() 和 JSON.parse()

我们知道,JSON.stringify() 和 JSON.parse() 是一对处理JSON数据的方法,前者是将JSON对象序列化为字符串,而后者是将JSON字符串解析为JSON对象。但是你有较为深入地去了解过它们吗?它们分别可以传入几个参数以及每个参数对应的作用是什么呢?

m0_61343119的博客 1万+

优化问题-半正定规划(Semi-Definite Program, SDP)

半正定规划(Semi-Definite Program, SDP)在MIMO无线通信相关的信号处理中具有广泛的应用,在某些场景可以分析证明SDP的得到的解释原问题的全局最优化或者次优解。

qq_33668008的博客 1万+

JSON.stringify()

JSON.stringify() 看了几篇关于该函数的语法实例讲解,终于搞懂了,觉得自己比较蠢,所以写一篇来记录下自己的理解 该函数的作用是:系列化对象 系列化对象说白了就是把对象的类型转换为字符串类型 语法 JSON.stringify(value[, replacer [, space]]) value 将要序列化成 一个JSON 字符串的值。 replacer

pika_lzy的博客 9万+

coze 怎么读取excel文件,使用循环,数据库完成LLM问答并存储

本文介绍了如何在Coze平台实现"Excel读取+循环处理+LLM问答+数据库存储"的工作流。主要分为三个步骤:1)使用代码节点解析Excel文件为问答对数组;2)通过循环节点遍历问答对,调用LLM节点生成回答;3)利用数据库节点将问答结果存储到Coze内置数据库中。文中提供了代码示例和节点配置说明,并强调了注意事项如Excel格式要求、LLM调用频率控制等。该工作流适用于批量构建知识库问答系统并持久化存储结果。

ZhangJiqun&191cm&85kg 1780

23种设计模式-中介者(Mediator)设计模式

软考中级-软件设计师 中介者设计模式

片言可决讼,半纸能缚龙 1861

Json.stringify()和Json.parse() - 用法及区别

一.json.stringify()和json.parse()的用法和区别: 两者区别:json.stringify()是把javascript对象转换成json字符串; json.parse()是把字符串转换成对象。简单来说两者的作用是相对的。1.json.stringify(): (1) json.stringify()–把javascript对象转换成json字符串; (2) json.stringfy()–起到对参数序列化的作用。 比如说:前端调用后台接口需要传参数,如果传递的参数是简单的字段可以不

HZM_优快云的博客 1万+

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

JSON.stringify()与JSON.parse()

1.使用JSON.string() 转换的值中,如果有 toJSON() 方法,那么返回值直接代替了当前的这个对象。我们之前都在介绍 JSON.string(),我们现在简单说下 JSON.parse()。8.undefined、任意的函数、symbol 值,在序列化过程中会被忽略【出现在非数组对象的属性值中时】JSON.string()转换的值中有 toJSON() 方法,那么返回值直接替代当前这个对象。我们平时在开发中,更多的是使用JSON.string()和JSON.parse()。

lzping_719的专栏 1190

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

json.stringify()的妙用,json.stringify()与json.parse()的区别

最近做项目,发现JSON.stringify()使用场景真的挺多,我们都知道JSON.stringify()的作用是将JavaScript 值转换为 JSON 字符串,而JSON.parse()可以将JSON字符串转为一个对象。 简单点说,它们的作用是相对的,我用JSON.stringify()将对象a变成了字符串c,那么我就可以用JSON.parse()将字符串c还原成对象a。 ...

看到我在玩请叫我去敲代码的博客 832

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

转载:json.stringify()的妙用,json.stringify()与json.parse()的区别

原文:https://www.cnblogs.com/echolun/p/9631836.html 一、JSON.stringify()与JSON.parse()的区别 最近做项目,发现JSON.stringify()使用场景真的挺多,我们都知道JSON.stringify()的作用是将JavaScript 值转换为 JSON 字符串,而JSON.parse()可以将JSON字符串转为一个对...

fishegg07的博客 187

如何实现一个JSON.stringify() ,手写JSON.stringify

JSON.stringify()方法将一个 JavaScript 值(对象或者数组)转换为一个 JSON 字符串,如果指定了 replacer 是一个函数,则可以选择性地替换值,或者如果指定了 replacer 是一个数组,则可选择性地仅包含数组指定的属性。 语法 JSON.stringify(value[,replacer[,space]]) 参数 1.value 将要序列化成 一...

宋坚强大大~~ 2557

JSON.parse()与JSON.stringify()的区别

原文地址:https://www.cnblogs.com/goatling/p/6293692.html JSON.parse()【从一个字符串中解析出json对象】 例子: //定义一个字符串 var data='{"name":"goatling"}' //解析对象​ ​JSON.parse(data) 结果是: ​name:"goatling" JSON.stringify...

捣蛋的博客 1070

JSON.stringify()和JSON.parse()

JSON.stringify() 是 JavaScript 中的一个内置方法,用于将一个 JavaScript 值(对象或值)转换为一个 JSON 字符串。JSON.parse() 是 JavaScript 中的一个内置方法,用于将一个 JSON 字符串转换回 JavaScript 对象或值。在上面的示例中,因为 jsonString 是一个无效的 JSON 字符串,所以 JSON.parse() 会抛出一个 SyntaxError,该错误会被 catch 语句捕获并打印到控制台。

Yan的博客 1526

JSON.parse() 和 JSON.stringify()的使用

在测试前端页面的时候, 需要对后台数据进行处理, 后台返回的数据基本都是json格式, 这里就要用到 JSON.parse() 和 JSON.stringify()两种方式处理. JSON.stringify()与JSON.parse()的区别 JSON.stringify()的作用是将 JavaScript 对象转换为 JSON 字符串,而JSON.parse()可以将JSON字符串转为一个对象...

zyfacd的博客 4002

json.stringify()和json.parse()

json.stringfy()将对象、数组转换成字符串;json.parse()将字符串转成json对象。 json.stringfy(): 语法:   JSON.stringify(value [, replacer] [, space]) value:是必选字段。就是你输入的对象,比如数组,类等。 replacer:这个是可选的。它又分为2种方式,一种是数组,第二种是方法。   情况一:replacer为数组时,通过后面的实验可以知道,它是和第一个参数value有关系的。一般来说,系列化...

qq_45080203的博客 4297

java json.stringify_JSON.stringify() 方法

功能非常简单的一个方法,但是有很多细节需要注意,本文通过代码实例详细介绍。由此方法的名称入手,从 simplify 单词分析开始:(1).simplify 是由 simple 衍化而来,加上 ify 后缀,变成一个动词,功能是使 ... 简单化。(2).同样的道理,stringify 是由 string 衍化而来,加上 ify 后缀,功能是使 ... 字符串化。JSON.stringify() 的...

weixin_39644325的博客 1590

写点关于JSON.parse()和 JSON.stringify()

在解析后台返回的加密串,使用JSON.parse()解析不了,经过查证后发现,解析前要确保你的数据是标准的 JSON 格式,否则会解析出错。 语法: JSON.parse(text[, reviver]) 参数说明: text:必需, 一个有效的 JSON 字符串。 reviver: 可选,一个转换结果的函数, 将为对象的每个成员调用此函数。 注:JSON 不能存储 Date 对象。如果你...

夜轩14 225
上一篇: Chrome 控制台console的用法
下一篇: oracle sqlldr 用法详解
shadow_zed
博客等级 码龄10年 6289粉丝 68原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值