JavaScript 中JSON.stringify()和JSON.parse() 用法总结


1.JSON.stringify() 方法用于将 JavaScript 值转换为 JSON 字符串

语法为:JSON.stringify(value[, replacer[, space]])
1)value 必填,一般就是数组或者对象。
2)replacer 非必填,可以为数组或者函数。
(1)当replacer 为数组时,则仅转换该数组中具有键值的成员。成员的转换顺序与键在数组中的顺序一样.
(2)当replacer 为函数时,则 JSON.stringify 将调用该函数,并传入每个成员的键和值。使用返回值而不是原始值。如果此函数返回 undefined,则排除成员。根对象的键是一个空字符串:"".
3)space:就是用什么来做分隔符的。 
1)如果省略的话,那么显示出来的值就没有分隔符,直接输出来 。
2)如果是一个数字的话,那么它就定义缩进几个字符,当然如果大于10 ,则默认为10,因为最大值为10。
3)如果是一些转义字符,比如“\t”,表示回车,那么它每行一个回车。 
4)如果仅仅是字符串,就在每行输出值的时候把这些字符串附加上去。当然,最大长度也是10个字符。

第二,replace是数组或者方法的情况



 

replace是数组或者方法还和第一个参数的形态有着一定关系。分几种情况来看:(看到一个特别好的案例,摘自以为大神)

 

以下一表示(第一个参数),二表示(第二个参数)。

 

1、一数组二function

 
 

 

 

 

 

由此可见,当第二个参数是function时,就是把系列化后的每一个对象(记住是每一个)传进方法里面进行处理。 如上面实例所示。

 

2、一对象二function

 
 

 



 

 

 

这种情况不像第一个参数是数组的情况,它需要指明对象具体需要处理的属性名称。接着看一下第三种情况。

 

3、一数组二数组

 
 

 

 

 

 

第一和第二个参数都是数组的时候,只会系列化第一个数组,第二个被忽略了。

 

4、一对象二数组

 
 

 



 

 

 

上面举了两个例子,足以明白这种情况的输出规则,第一个参数是对象,第二个是数组的时候,数组的值当结果的key。对象的值当结果的value,前提是数组的值在对象的属性中存在。

 

好了,到这里,关于第二个参数replacer的取值情况,我已经通过例子解释了一下。下面来断续看第三个参数的情况。

 

第三、space的用法

 

讲到space就有点小复杂了,分的情况比较多。总的来说就是一句话:用什么来做分隔符的。

 

在具体一点吧:

 

1、如果省略,输出的结果就没有分隔符,直接输出。(这个不要举例!)

 

2、如果是数字的话,表示缩进几个字符,最大值10。

 
 

 

 

3、如果是转义字符,比如"\t",表示回车,每行一个回车。

 
 

 

 

4、如果是字符串,输出结果附加上去,最大长度10个字符。

 

2.JSON.parse()
语法为:json.parse(text[,reviver])
1)text 必填,一个有效的json字符串

2)reviver

可选。 一个转换结果的函数。 将为对象的每个成员调用此函数。 如果成员包含嵌套对象,则先于父对象转换嵌套对象。 对于每个成员,会发生以下情况:

 
  • 如果 reviver 返回一个有效值,则成员值将替换为转换后的值。

  • 如果 reviver 返回它接收的相同值,则不修改成员值。

  • 如果 reviver 返回 null 或 undefined,则删除成员

 
 

					


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM