JSON.stringify 语法讲解 随风浪迹天涯 博客园

摘要:
JSON。我学习stringify的语法并不是很短的时间,但这是我第一次看到它。我感到羞愧。通常,我们的序列化结果由键值对表示。varstudent=newObject();大学生name=“兰尼”;大学生年龄=“25”;大学生location=“中国”;varjson=JSON。架线;警觉的结果如下:有些人可能会怀疑JSON.stringify的作用。OK.varjson=JSON。架线;警觉的结果如下:因为stu[2]=“Hi”;该Hi无法在第一个Hi中找到,因此不会显示。varstudent=newObject();大学生qq=“5485891512”;大学生name=“兰尼”;大学生年龄=25岁;varstu=newArray();stu[0]=“qq”;stu[1]=“年龄”;stu[2]=“嗨”;varjson=JSON。字符串;//请注意此处的100alert;结果是:10个字符留空。如果它是varjson=JSON。stringify//就是这样。

JSON.stringify 语法讲解

认识javascript也不短的时间了,可是这个用法说实在的,我还是第一次见过,惭愧啊惭愧啊。于是乎,在网上找了写资料,写了些例子 希望能给园子们一些帮助。

作用:这个函数的作用主要是为了系列化对象的。

可能有些人对系列化这个词过敏,我的理解很简单。就是说把原来是对象的类型转换成字符串类型(或者更确切的说是json类型的)。就这么简单。打个比方说,你有一个类,那么你可以通过这个方法转换成相应的json类型的。很简单吧。

接着看。

语法:

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

value:是必须要的字段。就是你输入的对象,比如数组啊,类啊等等。

replacer:这个是可选的。它又分为2种方式,一种是方法,第二种是数组。

情况一:我们先说数据,通过我们后面的实验可以知道,它是和第一个有关系的。一般来说,我们系列化后的结果是通过键值对来进行表示的。

比如说:

name:"lan",age:25

这种形式。

所以,如果这种形式的话,如果第二个的值在第一个存在,那么的话就以第二个的值做key,第一个值为value进行表示,如果不存在,sorry,忽略。【是不是有点抽象,我也这么觉得,不过你等一下看实验 就OK了。。呼呼。】

情况二:如果是方法,那很简单,就是说把系列化后的每一个对象(记住 是每一个)传进方法里面进行处理。

space:很好理解,用什么来做分隔符的。

1.如果省略的话,那么显示出来的值 就没有分隔符。直接输出来

2.如果是一个数字的话,那么它就定义缩进几个字符,当然 如果大于10 ,则最大值为10.

3.如果是一些转义字符,比如“\t”,表示回车,那么它每行一个回车。

4.如果仅仅是字符串,OK,就在每行输出值的时候把这些字符串附加上去就OK。当然,最大长度也是10个字符。


开始用实例说明;

1.只有一个参数的情况下:

var student = newObject();
student.name = "Lanny";
student.age = "25";
student.location = "China";
var json = JSON.stringify(student);
alert(student);

结果如下:

JSON.stringify 语法讲解 随风浪迹天涯 博客园第1张

有些人可能会怀疑JSON.stringify的作用,OK。那假如,我们不要这个函数。代码下面的样子:

var student = newObject();
student.name = "Lanny";
student.age = "25";
student.location = "China";
// var json = JSON.stringify(student);
alert(student);

恭喜你 得到的结果是:

JSON.stringify 语法讲解 随风浪迹天涯 博客园第2张

没骗你吧,继续。

2.第二个参数存在,并且第二个参数还是function的时候

var students = newArray() ;
students[0] = "Lanny";
students[1] = "dong";
students[2] = "I love you";
var json = JSON.stringify(students,switchUpper);
function switchUpper(key, value) {
returnvalue.toString().toUpperCase();
}
alert(json);
//var json = JSON.stringify(students, function (key,value) {
//return value.toString().toUpperCase();
//});
上面的方法也可以换成下面的,2个都是一样,只是写法有那么一点点的不一样而已。

得到结果如下:

JSON.stringify 语法讲解 随风浪迹天涯 博客园第3张

3.第二个参数存在,并且第二个参数不是function,而是数组的时候。

3.1 【误区】如果第一个参数是数组,第二个参数也是数组的话,只显示第一个参数的值。

比如:

var students = newArray() ;
students[0] = "Lanny";
students[1] = "dong";
students[2] = "I love you";
var stu = newArray();
stu[0] = "1";
stu[1] = "2";
var json = JSON.stringify(students,stu);
alert(json);

sorry 得到的结果就是:

JSON.stringify 语法讲解 随风浪迹天涯 博客园第4张

第二个被忽略了,只是第一个被系列化了。

3.2 如果第一个是对象(这里说的对象就像在C#里面可以进行new的),第二个是数组的。

那么如果第二个的value在第一个存在,那么的话就以第二个的值做key,第一个值为value进行表示

var student = newObject();
student.qq = "5485891512";
student.name = "Lanny";
student.age = 25;
var stu = newArray();
stu[0] = "qq";
stu[1] = "age";
stu[2] = "Hi";//这个student对象里不存在。
var json = JSON.stringify(student,stu);
alert(json);

得到的结果如下:

JSON.stringify 语法讲解 随风浪迹天涯 博客园第5张

因为stu[2] = "Hi";这个Hi 在第一个找不到,所以就不进行显示了。

4.第三个参数

4.1.如果省略的话,那么显示出来的值 就没有分隔符。直接输出来

比如:

var student = newObject();
student.qq = "5485891512";
student.name = "Lanny";
student.age = 25;
var stu = newArray();
stu[0] = "qq";
stu[1] = "age";
stu[2] = "Hi";
var json = JSON.stringify(student,stu);
alert(json);

输出的就是:

JSON.stringify 语法讲解 随风浪迹天涯 博客园第5张

4.2.如果是一个数字的话,那么它就定义缩进几个字符,当然 如果大于10 ,则最大值为10.

var student = newObject();
student.qq = "5485891512";
student.name = "Lanny";
student.age = 25;
var stu = newArray();
stu[0] = "qq";
stu[1] = "age";
stu[2] = "Hi";
var json = JSON.stringify(student,stu,100);//注意这里的100
alert(json);

那么得到的是:

JSON.stringify 语法讲解 随风浪迹天涯 博客园第7张

空开来了10个字符。

4.3.如果是一些转义字符,比如“\t”,表示回车,那么它每行一个回车。

也是一样。

4.4.如果仅仅是字符串,OK,就在每行输出值的时候把这些字符串附加上去就OK。当然,最大长度也是10个字符。

如果是var json = JSON.stringify(student,stu,“HaiKou”);//

JSON.stringify 语法讲解 随风浪迹天涯 博客园第8张

就这样吧 。good night。

免责声明:文章转载自《JSON.stringify 语法讲解 随风浪迹天涯 博客园》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇钉钉前端开发ThingJS官方示例教程(一)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

javascript 高级选择器:querySelector 和 querySelectorAll

querySelector 和 querySelectorAll 方法是 W3C Selectors API 规范中定义的。他们的作用是根据 CSS 选择器规范,便捷定位文档中指定元素。 目前几乎主流浏览器均支持了他们。包括 IE8(含) 以上版本、 Firefox、 Chrome、Safari、Opera。W3C Selectors API...

博客园入园手册1——TinyMEC编辑器

     笔者第一次接触博客时,以为想要写博客必须先下一个特定的编辑器软件,不知道博客园有默认编辑器,第一篇博客也写的很不美观,编写博客时不是没有查阅资料,只是对这个方面是第一次,是个完完全全的小白。查阅资料时发现网上的使用教程都说的不清不楚,当时就想一定要写一个详细的教程。关于TinyMEC编辑器没什么使用难度,它和Word很相似,Markdown需要了...

对博客园和CSDN的简要分析

一:主页面:                 1.最左边的索引栏:两个网站都给出了索引的种类,但是博客园的索引栏提供了每一个分类的数量。CSDN只提供了相应的索引种类。在鼠标向下滑动时,csdn的索引会随着光标跟着向下滑动,它们的最左边分类只设计了类别(这点csdn胜),而博客园的最左边淡紫色列比较宽(除了分类功能,还提供了其他的功能,如下图),博客园...

MyBatis(五)MyBatis动态SQL

MyBatis 目录 MyBatis(一)MyBatis初识 - 青杉 - 博客园 (cnblogs.com) MyBatis(二)MyBatis标签 - 青杉 - 博客园 (cnblogs.com) MyBatis(三)MyBatis resultMap和注解 - 青杉 - 博客园 (cnblogs.com) MyBatis(四)MyBatis关联(级...

layer系列之弹层layer.prompt

layer官网:https://www.layui.com/doc/modules/layer.html layer在线调试:http://layer.layui.com/  如何使用layer.prompt在输入值为空的情况下点击确定继续执行逻辑?使用layer.open实现方式: 附:源码如下 layer.open({//formType: 2,//这...

[Swift]字符串大小写转换,同时实现本地化或设置语言环境

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/)➤GitHub地址:https://github.com/strengthen/LeetCode➤原文地址:https://w...