JSON.stringify(),JSON.parse()

最近做小程序需要用到用wx:for来循环 数组对象,说实在有点懵,就自己研究了一下。

首先要了解JSON.stringify(),是把JSON对象字符串化;JSON.parse()把字符串JSON化。

JSON.parse(JSON.stringify([{},{}])) //就得到对象本身,这也是深复制的一种方法

那么有没有想过多嵌套几层会怎么样哈哈哈哈~

console.log(this.data.test)
    console.log('加一层      :'+JSON.stringify(this.data.test))
    console.log('加二层      :' +JSON.stringify(JSON.stringify(this.data.test)))
    console.log('加三层      :' +JSON.stringify(JSON.stringify(JSON.stringify(this.data.test))))
    console.log('加三层 解一层:' +JSON.parse(JSON.stringify(JSON.stringify(JSON.stringify(this.data.test)))))
    console.log('加二层 解一层:' +JSON.parse(JSON.stringify(JSON.stringify(this.data.test))))
    console.log(JSON.parse(JSON.stringify(this.data.test)))

JSON.stringify(),JSON.parse()_第1张图片

这就是最后的结果 哈哈哈,相信很容易对比出来。那么我为什么要试这东西?是因为在想字符串化后继续字符串化会是怎么样。会不变化还是有所改变。事实证明有变化,不能多次使用,然后JSON格式如果继续parse是会报错的!

最后发现wx:for是可以循环数组对象的 就是[{},{}]。

但是!在判断数组对象中是否含有数组的时候不能直接用indexOf()来判断!必须都用JSON.stringify()字符串化后才可以判断!如果不存在indexOf()会返回-1

如果需要使用数组的方法就只能用数组对象直接使用,不能字符串化后才使用。

你可能感兴趣的:(JSON.stringify(),JSON.parse())