属性键中的标点符号是否真的会导致开发人员在使用符号哈希键的 Ruby 等语言中出现可用性问题,而在 Javascript 中,这些字符会阻止开发人员使用点符号进行属性访问。
问问题
997 次
1 回答
7
JSON 规范没有明确禁止在对象的名称/值对中使用连字符或任何其他字符。
是否是一个好主意是另一回事,但大多数语言都可以轻松处理特殊字符作为键,例如 JavaScript:
var x = {"a-b": "hello"};
console.log(x['a-b']); // prints "hello"
因为a-b
is 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 回答