javascript中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 = new Object();
 代码如下 复制代码
student.name = "Lanny";
 代码如下 复制代码
student.age = "25";
 代码如下 复制代码
student.location = "China";
 代码如下 复制代码
var json = JSON.stringify(student);
 代码如下 复制代码
alert(student);

 结果如下:

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


 代码如下 复制代码
var student = new Object();
            student.name = "Lanny";
            student.age = "25";
            student.location = "China";

           // var json = JSON.stringify(student);
            alert(student);

 恭喜你 得到的结果是:

没骗你吧,继续。

 

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


 代码如下 复制代码
var students = new Array() ;
            students[0] = "Lanny";
            students[1] = "dong";
            students[2] = "I love you";

            var json = JSON.stringify(students,switchUpper);

            function switchUpper(key, value) {
                return value.toString().toUpperCase();
            }
            alert(json);
        //var json = JSON.stringify(students, function (key,value) {                
        //return value.toString().toUpperCase();            
       //});
    

上面的方法也可以换成下面的,2个都是一样,只是写法有那么一点点的不一样而已。

 得到结果如下:

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

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

比如:


 代码如下 复制代码
var students = new Array() ;
            students[0] = "Lanny";
            students[1] = "dong";
            students[2] = "I love you";

            var stu = new Array();
            stu[0] = "1";
            stu[1] = "2";

            var json = JSON.stringify(students,stu);
            alert(json);

 sorry 得到的结果就是:

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

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

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


 代码如下 复制代码
var student = new Object();
            student.qq = "5485891512";
            student.name = "Lanny";
            student.age = 25;

            var stu = new Array();
            stu[0] = "qq";
            stu[1] = "age";
            stu[2] = "Hi";//这个student对象里不存在。

            var json = JSON.stringify(student,stu);
            alert(json);

 得到的结果如下:

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

4.第三个参数

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

比如:


 代码如下 复制代码

var student = new Object();
            student.qq = "5485891512";
            student.name = "Lanny";
            student.age = 25;

            var stu = new Array();
            stu[0] = "qq";
            stu[1] = "age";
            stu[2] = "Hi";

            var json = JSON.stringify(student,stu);
            alert(json);

 

输出的就是:

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


 代码如下 复制代码
var student = new Object(); student.qq = "5485891512"; student.name = "Lanny"; student.age = 25; var stu = new Array(); stu[0] = "qq"; stu[1] = "age"; stu[2] = "Hi"; var json = JSON.stringify(student,stu,100);//注意这里的100 alert(json);

那么得到的是:

空开来了10个字符。

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

也是一样。

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

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

 

就这样吧 。good night。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索数组
, json
, 字符串
, 对象
, 参数
代码
javascript stringify、json.stringify、json.stringify data、json.stringify 转义、json.stringify格式化,以便于您获取更多的相关知识。

时间: 2024-11-14 12:11:04

javascript中JSON.stringify 语法介绍的相关文章

javascript中JSON的操作介绍

JSON语法       JSON建构于两种结构:       对象--名称/值对的集合.不同的语言中,它被理解为对象,纪录,结构,字典,哈希表,有键列表(keyed list),或者关联数组.一个对象以"{"(左括号)开始,"}"(右括号)结束.每个"名称"后跟一个":"(冒号):"'名称/值' 对"之间使用","(逗号)分隔.       数组--值的有序列表.在大部分语言中,它被理

Javascript中的call()方法介绍

 这篇文章主要介绍了Javascript中的call()方法介绍,本文讲解了Call() 语法.Call() 参数.Javascript中的call()方法.Call()方法的实例等内容,需要的朋友可以参考下     在Mozilla的官网中对于call()的介绍是: 代码如下: call() 方法在使用一个指定的this值和若干个指定的参数值的前提下调用某个函数或方法. Call() 语法 代码如下: fun.call(thisArg[, arg1[, arg2[, ...]]])   Cal

详解js中Json的语法与格式_javascript技巧

JSON 文本格式在语法上与创建 JavaScript 对象的代码相同. 由于这种相似性,无需解析器,JavaScript 程序能够使用内建的 eval() 函数,用 JSON 数据来生成原生的 JavaScript 对象. JSON语法规则: 数据在 名称/值 对仲 数据由逗号分隔 花括号保存对象 方括号保存数组 JSON 名称/值 对介绍 "name":"张飞", "age":23 Json的值可以是: 数字(整数或浮点数) 字符串(要包括在

Javascript中json数组的使用教程

本文主要是对JS操作JSON的要领做下总结. 在JSON中,有两种结构:对象和数组. 1. 一个对象以"{"(左括号)开始,"}"(右括号)结束.每个"名称"后跟一个":"(冒号):"'名称/值' 对"之间运用 ","(逗号)分隔. 名称用引号括起来:值如果是字符串则必须用括号,数值型则不须要.例如: var o={"xlid":"cxh",&qu

JavaScript中的异常处理方法介绍

 这篇文章主要介绍了详解JavaScript中的异常处理方法,包括基本的try...catch语句和throw语句的使用,需要的朋友可以参考下     有三种类型的编程错误:(1)语法错误和(2)运行时错误(3)逻辑错误: 语法错误: 语法错误,也被称为解析错误,在编译时进行传统的编程语言,并出现在JavaScript解释时. 例如,下面一行将导致一个语法错误,因为它缺少一个右括号: ? 1 2 3 4 5 <script type="text/javascript"> &

转义字符(\)对JavaScript中JSON.parse的影响概述

JSON是一个提供了stringify和parse方法的内置对象,前者用于将js对象转化为符合json标准的字符串,后者将符合json标准的字符串转化为js对象,本文为大家介绍下转义字符对JSON.parse方法的影响   按照ECMA262第五版中的解释,JSON是一个提供了stringify和parse方法的内置对象,前者用于将js对象转化为符合json标准的字 符串,后者将符合json标准的字符串转化为js对象.json标准参考<a href="http://json.org/&qu

JSON.parse()和JSON.stringify()使用介绍_javascript技巧

parse用于从一个字符串中解析出json对象,如 var str = '{"name":"huangxiaojian","age":"23"}' 结果: JSON.parse(str) Object age: "23" name: "huangxiaojian" __proto__: Object 注意:单引号写在{}外,每个属性名都必须用双引号,否则会抛出异常. stringify(

JavaScript中变量作用域详细介绍

  以下变量具有全局作用域:     1.所有定义在最外层的变量(非函数体内部)具有全局作用域.     2.未定义直接赋值的变量,系统会把它声明为全局作用域.     3.所有window对象的属性具有全局作用域. 以下变量具有函数作用域   1. 在函数体内部用var定义的变量,这里要注意一点,只要是在函数里定义的变量,就算是在最       后一句定义,该变量也拥有整个函数的作用域.但是它的赋值是等到运行到那一句代码以         后才赋值的!!!   特别应该说明的一点是,作用域是层

JavaScript中的对象序列化介绍_javascript技巧

与Java语言一样,JavaScript中可以对对象进行序列化和反序列化,藉此对对象进行保存.ECMAScript 5标准中,JavaScript中的对象序列化是通过JSON.stringify()来实现的,而反序列化则通过JSON.parse()来实现: 复制代码 代码如下: var o = {x:1, y:29, z:42}; var s = JSON.stringify(o); console.log(s);//{"x":1,"y":29,"z&qu