这篇文章主要介绍了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))
上面的代码,我们通过替代者将成绩从百分制替换为成绩等级。
值得注意的是,如函数果把的第二个参数为函数那么它的返回值如果是未定义的,那么对应的属性不会被序列化,如果返回其他的值,那么用返回的值替代原来的值进行序列化。
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()在处理数据的时候同时考虑了数据转换和方便阅读,只不过,方便阅读这一点,常常被人忽略。