JSON.parse()里面的参数必须是字符串,如果是对象或者其他类型的参数会报错
Unexpected token o in JSON at position 1
还有今天遇到了一个特殊情况那就是,原来自定义属性data-的值可以是对象
是这样的,有一个属相需要保存起来,然后点击跳转的时候带到要跳转的页面,然而这个参数是一个数组,我一开始想的是把数组用JSON.stringify转换成字符串,然而,问题来了,因为html是用JS渲染的,代码看起来像是这样
'<div data-arr=" ' +JSON.stringify(arr)+ ' "></div>',这时再用JSON.parse()解析的时候就会报错,因为当我们获取属性值的时候,假设arr=[{name:"abc"}],值是这样的,data="[{"data":"abc"}]",parse之后的值就是[{,然后就导致了后面的问题。。。
解决的办法就是js模板改为'<div data-arr= ' +JSON.stringify(arr)+ ' ></div>',就是把双引号去掉
网友评论