jsonstringify(jsonstringify深拷贝的缺点)

本篇文章给大家谈谈jsonstringify,以及jsonstringify深拷贝的缺点对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

JSON.stringify详解

当我们使用 JSON.stringify() 序列化一个值为JSON字符串,只有 JSON安全的值 才可以通过 JSON.stringify() 转换为字符串。那么,什绝早么是 JSON安全的值 ?能够有效用JSON形式表示的任何值。

非JSON安全的值,例如: undefined 、 function 和 symbol 以及循环引用的object(对象结构的属性引用通过创建彼此,构成一个无限循环)。对一个标准的JSON结构来说,这些值都是非法的,主要是因为它们无法移值到其他支持JSON的语言中。

当 JSON.stringify() 遇到 undefined 、 function 和 symbol 的时候,会自动忽略它们的值,如果这样的值在数组中会被替换成 null (这样数组的索引信息就不会被改变)。如果这样的值出现在对象的属性中,那这个属性会被排除掉。

JSON字符串有一个特殊的行为,如果一个对象定义了 toJSON() 方法,那这个方法先被调用,并且将它返回的值进行序列化。

如果将一个含有非法JSON值的对象序列化成JSON字符串,需要定义一个 toJSON() 方法,用于返回该对象的JSON安全版本。

JSON.stringify()第二个参数是个可选参数,被称为replacer。这个参数可以是数组或者函数。它提供了一个过滤机制制或颤定了应该或者不应该包含哪些属性,从而实现了对象可定制的递归序列化,这种做法和toJSON()如何序列化准备一个值很相似。

如果replacer是一个数组,它应该是一个字符串数组,每一个值都指定了对象的属性名称,代表属性应该被加入衫宏败到序列化中,如果一个属性不在这个列表中,它会被跳过。

如果replacer是一个函数,它首先会被该对象调用一次,然后该对象的每个属性会调用一次,每次都会给这个函数传递两个值,key和value。想在序列化过程中跳过某个key,只需要返回undefined,否则返回提供的value。

第三个可选的参数也可以传递给JSON.stringify(),被称为space,被用作缩进,是为了使得输出有格式更加漂亮。space可以是一个正整数,指定每层缩进应该缩进多少个空格。或者space也可以是个字符串,其值的前十个字符被用于每个缩进层次。

关于JSON.stringify的妙用

我们都知道JSON对象有两个方法,一个是parse,用来把json字符串转换为json对象,另一个是stringify,用来把json对象转换为json字符串, 可是stringify其实还有其它作用。

比如说有一个对象 {a:1,b:2,c:3,d:4,e:5} ,现在我们只需要b属性和e属性,可以这样来操作

JSON.stringify(value, replacer , space) 语法

将要序列化成 一个JSON 字符串的值。

如果该参数是一个函数,则在序列化过程中,被序列化的值的每个属性都会经过该函数的转换和处理;如果该参数是一个数组,答亏则只有包含在这个数组中的属性名才会被序列化到最终的 JSON 字符串中;如果该参数为null或者未提供,则对象所有的属性都会被序列化。

指定缩进用的空白字符串,用于美化输出(pretty-print);如果参数是个数字,它代表有多少的空格;上限为10。该值若小于1,则意味着没有空格;如果该参数为字符串(字符档运串的前十个字母),该字符串清蠢神将被作为空格;如果该参数没有提供(或者为null)将没有空格。

JSON.stringify()的简单实现

JSON.stringify 方法是将一个 JavaScript 对象或值转换为 JSON 字符串,默认该方法其实有三个参数:第一个参数是必选,后面两个是可选参数非必选。第一个参数闷纤传入的是要转换的对象;第二个是一个 replacer 函数,比如指定的 replacer 是数组,则可选择性地仅处理包含数组指定的属性;第三个参数用来控制结果字符串里面的间距

先利用 typeof 把早罩帆基础数据类型和引用数据类型分开,分开之后再根据不同情况来分别处理不同的情况

JSON.parse 方法用来解析 JSON 字符串,构造由字符串描述的 JavaScript 值或对象。该方法有两个参数:第一个参数是需要陆雹解析处理的 JSON 字符串,第二个参数是可选参数提供可选的 reviver 函数,用在返回之前对所得到的对象执行变换操作

[img]

“JSON.parse”和“JSON.stringify”有什么区别?

1.JSON.parse(“要转换的数饥激组”) 。

2.JSON.stringify(“要转化的数组”)。

3.首先,两个方法的用法是有局肢薯差别的。

①.JSON.stringify是从一个对象中解析出字符串。

②.JSON.parse是从一个字符串中解析出json(键值对)。 

4.所以在使用的时候如果参数不对应,就不能正确转换。

一.JSON.parse()【从一个字符串中解析出json对象】

例子:

1.//定义一个字符串,var data='{"name":"goatling"}'。

2.//解析对象,JSON.parse(data)。

3.结果是桐者:

name:"goatling"

二.JSON.stringify()【从一个对象中解析出字符串】

1.var data={name:'goatling'}

2.JSON.stringify(data)

3.结果是:

'{"name":"goatling"}'

关于jsonstringify和jsonstringify深拷贝的缺点的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

相关阅读

  • oraclesupport(Oracle support identifier)

    oraclesupport(Oracle support identifier)

    简介:Oracle Support是Oracle公司提供的一项重要的技术支持服务,旨在帮助客户解决Oracle软件产品在使用过程中遇到的问题,提高系统的稳定性和性能。本文将介绍Oracle Support的重要性以及具体的使用方法。一、Or...

    2024.04.17 09:55:21作者:intanet.cnTags:oraclesupport
  • hivetez(hive特征工程)

    hivetez(hive特征工程)

    标题:探索Hivetez的未来简介:Hivetez是一家领先的IT技术公司,在区块链和加密货币领域有着深厚的技术积累。本文将探索Hivetez在IT技术领域的未来发展方向和创新技术。一、区块链技术的应用Hivetez致力于将区块链技术应用于...

    2024.04.17 07:22:22作者:intanet.cnTags:hivetez
  • mysql或的简单介绍

    mysql或的简单介绍

    MySQL数据库简介MySQL是一种开源的关系型数据库系统,广泛应用于Web应用程序的开发中。它支持多种操作系统,包括Windows、Linux和Mac OS等,同时也支持多种编程语言,如PHP、Java和Python。MySQL具有高性能...

    2024.04.17 06:55:17作者:intanet.cnTags:mysql或
  • redis创建表(redis创建表命令)

    redis创建表(redis创建表命令)

    简介:Redis是一种内存数据库,广泛应用于缓存和消息传递等领域。在使用Redis进行开发时,我们经常需要创建表来存储数据。本文将介绍如何在Redis中创建表。一级标题:如何在Redis中创建表二级标题:连接Redis数据库首先,我们需要连...

    2024.04.16 12:55:11作者:intanet.cnTags:redis创建表
  • mongodbapi的简单介绍

    mongodbapi的简单介绍

    MongoDB是一种开源的NoSQL数据库管理系统,它具有高性能、高可用性和可伸缩性的特点,能够处理大量的非结构化数据。MongoDB提供了一套丰富的API,允许开发人员在应用程序中使用各种编程语言来操作和管理数据库。# 什么是MongoD...

    2024.04.16 12:44:25作者:intanet.cnTags:mongodbapi
  • redis3(redis30集群)

    redis3(redis30集群)

    简介:Redis是一种开源的高性能键值存储数据库,常用作缓存、消息队列、排行榜等场景。Redis3是Redis的一个重要版本,它带来了许多新的特性和性能优化,使得Redis在大规模应用中表现更加出色。本文将介绍Redis3的一些重要特性和使...

    2024.04.16 12:22:11作者:intanet.cnTags:redis3
  • db-3(db3双向触发二极管好坏的测量)

    db-3(db3双向触发二极管好坏的测量)

    IT技术在当今社会中扮演着重要的角色,它贯穿着各个行业和领域,为我们的生活带来了巨大的便利和发展。本文将介绍关于数据库技术的知识和应用,探讨数据库技术在IT领域中的重要性和作用。# 数据库技术的概念和分类数据库技术是指通过计算机系统来管理和...

    2024.04.16 11:55:16作者:intanet.cnTags:db-3
  • oracle中sysdate(oracle中sysdate返回多个日期)

    oracle中sysdate(oracle中sysdate返回多个日期)

    标题:Oracle中sysdate的用法简介:在Oracle数据库中,sysdate是一个函数,可用于获取当前的系统日期和时间。它常用于数据库操作中,例如插入、更新数据时记录操作的时间。一、sysdate函数的语法sysdate函数的基本语...

    2024.04.16 08:44:11作者:intanet.cnTags:oracle中sysdate