谁把年华错落成诗 - JavaScript
type: channel
link: https://blog.pomears.com/tag/JavaScript/
items: JSON.stringify详解

JSON.stringify详解
type: item
date: 2018-04-26T12:16:00+08:00
description: 语法说明语法：JSON.stringify(value [, replacer] [, space])参数说明value：必选参数，就是你输入的对象，比如数组，类等replacer：可选。它又分为2种方式，一种是数组，第二种是方法①replacer为数组时，它是和第一个参数value有关系的。一般来说，系列化后的结果是通过键值对来进行表示的。所以，如果此时第二个参数的值在第一个存在，那么就以第二个参数的值做key，第一个参数的值为value进行表示，如果不存在，就忽略。②replacer为方法时，就是说把系列化后的每一个对象传进方法里面进行处理。space：可选，用什么来做分隔符。①如果省略的话，那么显示出来的值就没有分隔符，直接输出来②如果是一个数字的话，那么它就定义缩进几个字符，当然如果大于10 ，则默认为10，因为最大值为10③如果是一些转义字符，比如“\t”，表示tab，那么它每行一个tab④如果仅仅是字符串，就在每行输出值的时候把这些字符串附加上去，最大长度也是10个字符操作实例只有第一个参数valuevar student = new Object(); student.name = "Lanny"; student.age = "25"; student.location = "China"; var json = JSON.stringify(student); console.log(json); //{"name":"Lanny","age":"25","location":"China"}有些人可能会怀疑JSON.stringify的作用。那假如，我们不要这个函数，而直接打印student，结果如下：var student = new Object(); student.name = "Lanny"; student.age = "25"; student.location = "China"; console.log(student); //Object {name: "Lanny", age: "25", location: "China"}含有第二个参数replacer第一个参数是Array，第二个参数是functionvar students = new Array() ; students[0] = "onepiece"; students[1] = "naruto"; students[2] = "bleach"; var json = JSON.stringify(students,switchUpper); function switchUpper(key, value) { return value.toString().toUpperCase(); } console.log(json); //"ONEPIECE,NARUTO,BLEACH"下面这种方式也可以var students = new Array() ; students[0] = "onepiece"; students[1] = "naruto"; students[2] = "bleach"; var json = JSON.stringify(students,function(key, value){ return value.toString().toUpperCase(); }); console.log(json); //"ONEPIECE,NARUTO,BLEACH"根据打印结果得知：每个值都传入了函数中处理两个个参数都是Arrayvar stuArr1 = new Array() ; stuArr1[0] = "onepiece"; stuArr1[1] = "naruto"; stuArr1[2] = "bleach"; var stuArr2 = new Array(); stuArr2[0] = "1"; stuArr2[1] = "2"; var json = JSON.stringify(stuArr1,stuArr2) console.log(json); //["onepiece","naruto","bleach"] 根据打印结果得知：第二个参数被忽略了，只是第一个参数被系列化了第一个参数是Object，第二个参数是Arrayvar stuObj = new Object(); stuObj.id = "20122014001"; stuObj.name = "Tomy"; stuObj.age = 25; var stuArr = new Array(); stuArr[0] = "id"; stuArr[1] = "age"; stuArr[2] = "addr"; var json …