JSON.stringify详解

来源:互联网 发布:mac nestopia键位设置 编辑:程序博客网 时间:2024/06/08 14:22

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

1. value: 是必须要的字段。就是你输入的对象,比如数组。
最常用的用法

var obj = {  name: "Shelock",  age: 21}var json = JSON.stringify(obj);console.log(json, typeof json);//{"name":"Shelock","age":21} stringvar _obj = JSON.parse(json)console.log(_obj, typeof _obj);//Object {name: "Shelock", age: 21} "object" 

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

1)方法:

var a = ['name', 'age'];var json = JSON.stringify(a,toUpperCase); function toUpperCase(key, value) {   return value.toString().toUpperCase(); }console.log(json);//"NAME,AGE"

2) 数组:

1。如果value是数组,那么如果replacer再是数组就没有意义了,也就是说只会序列还valuereplacer会被忽略。如:

var a = ['name', 'age'];var b = ['grade', 'class']var json = JSON.stringify(a,b); console.log(json, typeof json);//["name","age"] string

2。如果value是对象,replacer是数组,则是输出replacer中出现过的值的obj的序列化,如下:

var obj = {  name: "Shelock",  age: 21,  class: 1};var b = ['name', 'grade', 'class']var json = JSON.stringify(obj,b); console.log(json, typeof json);//{"name":"Shelock","class":1} string

3. space:可选,用来做分隔符的。 1).如果省略的话,那么显示出来的值 就没有分隔符。直接输出来,如1中的例子2).如果是一个数字的话,那么它就定义缩进几个字符,最大为10。

var obj = {  name: "Shelock",  age: 21,  class: 1};var json = JSON.stringify(obj, null, 2); console.log(json);///*{  "name": "Shelock",  "age": 21,  "class": 1}*/

3).如果是一些转义字符,比如“\n”,表示换行,那么它每行后再加一个换行。

var obj = {  name: "Shelock",  age: 21,  class: 1};var json = JSON.stringify(obj, null, '\n'); console.log(json);///*{"name": "Shelock","age": 21,"class": 1}*/

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

var obj = {  name: "Shelock",  age: 21,  class: 1};var json = JSON.stringify(obj, null, 'omg'); console.log(json);///*{omg"name": "Shelock",omg"age": 21,omg"class": 1}*/
原创粉丝点击