json的键值对的key为什么要引号

JavaScript015

json的键值对的key为什么要引号,第1张

楼主搞混淆了,json格式是明确定义过key值必须带双引号,否则就不是一个json数据。

至于不带双引号那种写法是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":["打篮球","踢足球","乒乓球"]}