JSON.stringify() 是将 JavaScript 对象转换为 JSON 字符串的函数。
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 文本的字符串。
我们创建一个 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>
用浏览器打开该文件,浏览器输出如下图所示:
我们看到,我们传入的是 JavaScript 对象,最终在浏览器的控制台输出了 Json 字符串。即,我们使用 JSON.stringify() 函数,成功的将 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, null, 8));
</script>
</head>
<body>
</body>
</html>
用浏览器打开该文件,浏览器输出如下图所示:
我们看到,我们传入的是 JavaScript 对象,最终在浏览器的控制台输出了 Json 字符串。第二个参数 null,即表明对象的所有属性都会被序列化。
输出的 Json 字符串的每个 key 前面都有了八个空格,因为我们在 JSON.stringify() 函数的最后一个参数指定了。
我们创建一个 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>
用浏览器打开该文件,浏览器输出如下图所示:
我们看到,我们传入的是 JavaScript 对象,最终在浏览器的控制台输出了 Json 字符串。第二个参数我们自定义的函数,该函数的功能是将对象中的 key 为 age 的值设置为 101。输出的 Json 字符串的 age 变成了 101。
我们创建一个 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>
用浏览器打开该文件,浏览器输出如下图所示:
我们看到,我们传入的是 JavaScript 对象,最终在浏览器的控制台输出了 Json 字符串。第二个参数我们传递的是数组,因为最终输出的字符串只序列化了我们传入的 key。输出的 Json 字符串未包含我们未传入的 age。
JSON.stringify() 是将 JavaScript 对象转换为 JSON 字符串的函数。JSON.stringify() 语法:
JSON.stringify(value [, replacer] [, space])