JavaScript中JSON.stringify()的用法示例

  介绍

这篇文章主要介绍了JavaScript中JSON.stringify()的用法示例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。

一、使用方法

1,基本用法

JSON.stringify()可以把一个JavaScript对象序列化为一个JSON字符串。

let  json1 =, {   标题:,才能“Json.stringify",   作者:,才能   ,,,“浪里行舟”;   ,,,   年才能:2021   };   let  jsonText =, JSON.stringify (json1);

默认情况下,JSON.stringify()会输出不包含空格或缩进的JSON字符串,因此jsonText的值是这样的:

“{“title":“Json.stringify",“author":[“浪里行舟”),“year": 2021}“

在序列化的JavaScript对象时,所有函数和原型成员都会有意地在结果中省略。此外,值为未定义的任何属性也会被跳过。最终得到的就是所有实例属性均为有效JSON数据类型的表示。

在JSON.stringify()方法一共能接受3个参数,其中两个可选的参数(分别是第二,第三个参数)。这两个可选参数可以用于指定其他序列化的JavaScript对象的方式。第二个参数是过滤器,可以是数组或函数;第三个参数是用于缩进结果JSON字符串的选项。单独或组合使用这些参数可以更好地控制JSON序列化。

2,第二个参数,过滤器

如果第二个参数是一个数组,那么JSON.stringify()返回的结果只会包含该数组中列出的对象属性,比如下面的例子:

let  json1 =, {   标题:,才能“Json.stringify",   作者:,才能   ,,,“浪里行舟”;   ,,,   年才能:2021年,,   ,,:& # 39;前端# 39;   weixin才能:& # 39;frontJS& # 39;   };   let  jsonText =, JSON.stringify (json1, [& # 39; weixin& # 39;]);

在这个例子中,JSON.stringify()方法的第二个参数是一个包含一个字符串的数组:“weixin"。它对应着要序列化的对象中的属性,因此结果JSON字符串中只会包含这个属性:

“{“weixin":“frontJS"}“

如果第二个参数是一个函数,则行为又有不同。提供的函数接收两个参数:属性名(键)和属性值(值)。可以根据这个关键决定要对相应属性执行什么操作。这个关键始终是字符串,只是在值不属于某个键/值对时会是空字符串。

const  students =, (   {才能   ,,,的名字:,& # 39;詹姆斯# 39;   ,,,分数:,100年,   ,,},{   ,,,的名字:,& # 39;可# 39;   ,,,分数:,60岁,   ,,},{   ,,,的名字:,& # 39;科比# 39;   ,,,分数:,90年,   ,,}   ];      function  replacer (键,值),{   if 才能;(key ===, & # 39;分数# 39;),{   ,,,if  (value ===, 100), {   ,,,,,return  & # 39; & # 39;;   ,,,},else  if  (value 祝辞=,90),{   ,,,,,return  & # 39;一个# 39;;   ,,,},else  if  (value 祝辞=,70),{   ,,,,,return  & # 39; b # 39;;   ,,,},else  if  (value 祝辞=,50),{   ,,,,,return  & # 39; c # 39;;   ,,,},{else    ,,,,,return  & # 39; e # 39;;   ,,,}   ,,}   return 才能;价值;   }   console.log (JSON.stringify(学生,替代者,,4))

上面的代码,我们通过替代者将成绩从百分制替换为成绩等级。

 JavaScript中JSON.stringify()的用法示例

值得注意的是,如函数果把的第二个参数为函数那么它的返回值如果是未定义的,那么对应的属性不会被序列化,如果返回其他的值,那么用返回的值替代原来的值进行序列化。

3,第三个参数,字符串缩进

JSON.stringify()方法的第三个参数控制缩进和空格。在这个参数是数值时,表示每一级缩进的空格数,例如,每级缩进4个空格,可以这样:

let  json1 =, {   标题:,才能“Json.stringify",   作者:,才能   ,,,“浪里行舟”;   ,,,   年才能:2021   };   let  jsonText =, JSON.stringify (json1, null,, 4);

这样得到的jsonText格式如下:

{   ,,,“title":,“Json.stringify"   ,,,“author":,   ,,,,,,,“浪里行舟”;   ,,,,   ,,,“year": 2021   }

JSON.stringify()在处理数据的时候同时考虑了数据转换和方便阅读,只不过,方便阅读这一点,常常被人忽略。

4, toJSON()方法——自定义JSON序列化

JavaScript中JSON.stringify()的用法示例