js中的json对象的属性名一定要用双引号引起来吗

JavaScript06

js中的json对象的属性名一定要用双引号引起来吗,第1张

是的。JavaScript的字面两对象不需要,但是如果是合法的JSON的话,必须使用双引号。规范相关内容:AstringisasequenceofzeroormoreUnicodecharacters,wrappedindoublequotes,usingbackslashescapes.一个字符串是由0个或个Unicode字符组成的序列(JSON的内容必须是Unicode字符),并且使用双引号包裹,使用反斜线转意。JSON格式规范细节可以看这里:http://json.org

楼下的答案是真的搞笑,我也遇到了这个问题,还是自己动手写了下,不多废话了,大体思路看图:

下边是代码:

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)

    }