失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > JSON.parse 和 JSON.stringify的使用

JSON.parse 和 JSON.stringify的使用

时间:2021-07-06 18:25:08

相关推荐

JSON.parse 和 JSON.stringify的使用

初学JSON,按照官方说明,在json2.js中有parse和stringify两个方法,parse用于从一个字符串中解析出json对象。还是举个例子说明:

1 var str = " {'name':'x', 'age':23} " ;

2 JSON.parse(str);

原来认为这肯定能够正确执行的,但是无论怎样写这个对象string,都抛出异常。后来发现原来是"和'导致的错误。如果改为:

1var str = ' {" name " : " xskow " , " age " : 23 } ';

2 JSON.parse(str);

就OK了!

还有就是我们写对象的时候一般可以{name:'xskow'},即属性名可以不用双引号括起来,但如果使用JSON.parse的话,每个属性都必须用双引号括起来,否则也会抛出异常。

比如,如下的代码:

function handle_success(response){ var json = eval(response); // response = "{'foo' : 'bar'}"; }

浏览器会报,invalid label错, 这是因为, eval会尝试将你的response解释为一个label, 当你在脚本中直接写:

<script> {'foo' : 'bar'};</script>

会报错的原理是一样的.

解决办法有俩个:

var json = eval('(' + response + ')'); // response = "{'foo' : 'bar'}";

或者

eval('var json = ' + response); // response = "{'foo' : 'bar'}"; //json is available now

JSON.parse 函数 将JSON文本转换为对象。

JSON.parse(text[, reviver]) 参数 text

必选项。要转换为对象的JSON文本。

reviver

可选项。该参数是个替换函数。在转换中,遍历的每个节点,都将执行该函数,该函数的返回值将替代转换结果的相应节点值。 JSON.stringify 函数 将对象转换为JSON文本。

JSON.stringify(value[, reviver[, space]]) 参数 text

必选项。要转换为JSON文本的对象。

reviver

可选项。该参数是个替换函数。在转换中,遍历的每个节点,都将执行该函数,该函数的返回值将替代转换结果的相应节点值。

space

可选项。格式化输出JSON文本缩进的空格数量。如果不提供该参数将不会格式化输出。 参数reviver的委托类型 reviver(key, value)

reviver函数的中的this是当前所遍历到的节点的父节点。当所遍历的是根节点的时候,父节点是个Object对象,根节点是该对象的一个属性,属性名是空字符串。

参数 key

当父节点是数组Object,key为数组索引,否则key为Object属性名。

value

节点值。

注:JSON不支持循环数据结构。

如果觉得《JSON.parse 和 JSON.stringify的使用》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。