对于JSON,在键名中使用“ - ”这样的标点是不好的吗?

时间:2012-11-27 05:26:57

标签: json key

属性键中的标点符号是否会导致使用符号散列键的Ruby等语言中的开发人员可用性问题,而在Javascript中,这些字符会阻止开发人员使用点符号进行属性访问。

1 个答案:

答案 0 :(得分:7)

JSON Specification未明确禁止在对象的名称/值对中使用连字符或任何其他字符。

这是一个好主意是另一个,但大多数语言都没有处理特殊字符作为关键,例如, JavaScript的:

var x = {"a-b": "hello"};
console.log(x['a-b']); // prints "hello"

由于a-b不是有效的属性名称x.a-b无法按预期工作,但JavaScript使用[]表示法为对象解除引用提供了替代语法。

另一个例子,PHP:

$x = json_decode('{"a-b": "hello"}');
echo $x->{'a-b'};

同样,$x->a-b不起作用,因此PHP支持使用->{}表示法进行解除引用。