js 读取json数据 挖坑

一般遇到后台给的json数据格式不对 比如key和value都是单引号。 

但真正的json 的key和value都是双引号,必须双引号才能取值。

 

再来一个例子看看

var test = [{
    "timestamp": 1470963388.561132,
    "content": "{'type': 'fee', 'fee_id': '99c0423a602711e6a021000740984a40', 'recognition_id': '99b25efe602711e6a021000740984a40'}"
},
    {
        "timestamp": 1470963388.357371,
        "content": "{'type': 'real_time_info'}"
    }
]

 如果我用console.log(test[0].content) 

控制台输出结果是

{'type': 'fee', 'fee_id': '99c0423a602711e6a021000740984a40', 'recognition_id': '99b25efe602711e6a021000740984a40'}

  但如果我想取出type中的值呢?

我写的是console.log(JSON.parse(test[0].content).type);这个已经报错了 为什么呢,因为content里面不是json的数据,无法换成数组对象

 

然后用正则匹配 把content.replace(/'/g,"\"") 把content里面的key和value的单引号换成双引号。这样就可以获取type的值 

感谢群里的好心人帮我解释下,

 替换一般都用正则,因为 js 自带的替换只替换一个,要用正则才能全部替换。
posted @ 2016-08-12 10:12  顺其自然²º¹?  阅读(223)  评论(0编辑  收藏  举报