至于不带双引号那种写法是js对象。
至于json为何定义是双引号而不是单引号,那是因为json只是一门技术,在诸多语言里自己实现的时候支持的不同,有得单引号,有得双引号,有得可以不加符号。但是有一点却是共性,那就是双引号能在绝大多数平台一定能得到兼容,这么说楼主可明白了?
楼下的答案是真的搞笑,我也遇到了这个问题,还是自己动手写了下,不多废话了,大体思路看图:
下边是代码:
function getStr(data){//我这里的data是数组,所以先转一下json
//数据格式是这样的:[{"id":30348079,"name":"表1","score":"1","pid":"0"},{"id":30348079,"name":"表1","score":"1","pid":"0"}]
var jsonData = JSON.stringify(data).replace(/\"/g, "") //这里去掉所有"
console.log("---"+jsonData)
// 下边操作
// :替换:"
// ,替换",
// }]替换"}]
// }",{替换 "},{
jsonData = jsonData.replace(/\:/g,"\:\"").replace(/\,/g,"\"\,").replace(/\}\]/g,"\"\}\]").replace(/\}\"\,\{/g,"\"\}\,\{")
console.log("++++"+jsonData)
//最后转回json对象
data = eval('(' + jsonData + ')')
console.log(data)
}
一般情况都有引号,如:
var json = {"id":"1","name":"Amy","hobit":["打篮球","踢足球","乒乓球"]}但是有时候是赋值操作就不用加引号,如:
var name = "Amy"var json = {"id":"1","name":name ,"hobit":["打篮球","踢足球","乒乓球"]}