问答详情
源自:6-2 完美运动框架

用json后,为什么属性不用加单引号了呢?

用json后,为什么属性不用加单引号了呢?

提问者:小马小宝贝 2015-12-12 15:43

个回答

  • 慕男婶
    2015-12-12 16:05:53
    已采纳

    并不清楚你提的是什么问题。。

    正确的JSON是这样的:属性名必须用双引号包裹

    var json = '{"name":"imooc"}'; // 这个是正确的JSON格式
    
    var json = "{\"name\":\"imooc\"}"; // 这个也是正确的JSON格式
    
    var json = '{name:"imooc"}'; // 这个是错误的JSON格式,因为属性名没有用双引号包裹
    
    var json = "{'name':'imooc'}";//这个也是错误的JSON格式,属性名用双引号包裹,而它用了单引号
    
    // 检验JSON格式是否正确,可以使用 JSON.parse(json); 如果是正确的JSON格式,会返回一个对象
    // 否则会报错
    
    // 如果是对象的话,属性名可以不用双引号包裹
    
    var obj = {name:"imooc"};
    var obj = {"name":"imooc"};
    var obj = {'name':'imooc'};
    var obj = {"name":'imooc'};
    var obj = {'name':"imooc"};
    
    // 上述写法都是正确的。一般使用第一种形式最多,有些人可能为了保证跟JSON格式的字符串保持一致性,
    // 也会使用第二种形式。。最后3种形式虽然是正确的,但不建议使用,容易挨打


  • 慕男婶
    2015-12-12 16:38:18

    第一种写法并不是json。。'width'是个字符串。。第二种写法{width:400}是一个对象(写法参见我的第一次回答),所以可以不用写引号。。明白否?

  • 小马小宝贝
    2015-12-12 16:25:00

    startMove(obj,'width',400);   //不用json时是这样的
    
    startMove(obj,{width:400});   //用json是这样的。为什么width不用加单引号了呢?