4

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

4

1 回答 1

7

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

是否是一个好主意是另一回事,但大多数语言都可以轻松处理特殊字符作为键,例如 JavaScript:

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

因为a-bis not a valid property namex.a-b不会按预期工作,但 JavaScript 有另一种语法,用于使用[]符号解引用对象。

另一个例子,PHP:

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

同样,$x->a-b它不起作用,因此 PHP 支持使用->{}符号解引用。

于 2012-11-27T05:40:55.593 回答