JSON.stringify() 函数

JSON.stringify() 函数教程

JSON.stringify() 是将 JavaScript 对象转换为 JSON 字符串的函数。

JSON.stringify() 函数详解

描述

JSON.stringify() 会处理的数据类型有: 字符串类型(String)、数字类型(Number)、 布尔类型(Boolean)、null类型、数组类型(Array) 和对象类型(Object)。

JSON.stringify() 不会处理的数据类型:日期类型(Date),、正则表达式类型(RegExp)、 未定义类型(undefined)、和函数类型(Function)。

语法

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

参数

参数 描述
value 必选参数。需要转换的 JavaScript 值,一般情况下为对象或者数组。
replacer 可选参数。若参数是一个函数,则在序列化过程中,被转换的 JavaScript 值的每个属性都会经过该函数的转换和处理。
若参数是一个数组,则只有包含在这个数组中的属性名才会被序列化。
若参数为 null 或者未提供,则对象所有的属性都会被序列化。
space 可选参数。若参数是个数字,它代表有多少个缩进用的空白字符串空格。(上限为 10 ,如果数字小于 1,则表示没有空格)。
若参数是字符串,则该字符串将被作为空格。
若参数是 null 或没有提供,将没有空格。

返回值

返回包含 JSON 文本的字符串。

案例

JavaScript对象转成 Json字符串

我们创建一个 haicoder.html 的文件,并输入以下代码:

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>JSON.stringify()使用</title> <script type="text/javascript"> console.log("嗨客网(www.haicoder.net)"); var obj = {name:'嗨客网', url:'www.haicoder.net'} console.log("Obj =", JSON.stringify(obj)); </script> </head> <body> </body> </html>

用浏览器打开该文件,浏览器输出如下图所示:

04 JSON.stringify.png

我们看到,我们传入的是 JavaScript 对象,最终在浏览器的控制台输出了 Json 字符串。即,我们使用 JSON.stringify() 函数,成功的将 JavaScript 对象转成了 Json 字符串。

参数 replacer 为 null

我们创建一个 haicoder.html 的文件,并输入以下代码:

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>JSON.stringify()使用</title> <script type="text/javascript"> console.log("嗨客网(www.haicoder.net)"); var obj = {name:'嗨客网', url:'www.haicoder.net'} console.log("Obj =", JSON.stringify(obj, null, 8)); </script> </head> <body> </body> </html>

用浏览器打开该文件,浏览器输出如下图所示:

05 JSON.stringify.png

我们看到,我们传入的是 JavaScript 对象,最终在浏览器的控制台输出了 Json 字符串。第二个参数 null,即表明对象的所有属性都会被序列化。

输出的 Json 字符串的每个 key 前面都有了八个空格,因为我们在 JSON.stringify() 函数的最后一个参数指定了。

参数 replacer 为函数

我们创建一个 haicoder.html 的文件,并输入以下代码:

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>JSON.stringify()使用</title> <script type="text/javascript"> console.log("嗨客网(www.haicoder.net)"); var replacer = function(key,value){ if(key == "age"){ return 101; } return value; }; var obj = {name:'嗨客网', url:'www.haicoder.net', age:10} console.log("Obj =", JSON.stringify(obj, replacer, 4)); </script> </head> <body> </body> </html>

用浏览器打开该文件,浏览器输出如下图所示:

06 JSON.stringify.png

我们看到,我们传入的是 JavaScript 对象,最终在浏览器的控制台输出了 Json 字符串。第二个参数我们自定义的函数,该函数的功能是将对象中的 key 为 age 的值设置为 101。输出的 Json 字符串的 age 变成了 101。

参数 replacer 为数组

我们创建一个 haicoder.html 的文件,并输入以下代码:

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>JSON.stringify()使用</title> <script type="text/javascript"> console.log("嗨客网(www.haicoder.net)"); var obj = {name:'嗨客网', url:'www.haicoder.net', age:10} console.log("Obj =", JSON.stringify(obj, ['name', 'url'], 4)); </script> </head> <body> </body> </html>

用浏览器打开该文件,浏览器输出如下图所示:

07 JSON.stringify.png

我们看到,我们传入的是 JavaScript 对象,最终在浏览器的控制台输出了 Json 字符串。第二个参数我们传递的是数组,因为最终输出的字符串只序列化了我们传入的 key。输出的 Json 字符串未包含我们未传入的 age。

JSON.stringify() 函数教程

JSON.stringify() 是将 JavaScript 对象转换为 JSON 字符串的函数。JSON.stringify() 语法:

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