Is it true that punctuation in property keys can cause developer usability issues in languages such as Ruby which uses symbolic hash key and in Javascript, these characters prevent developers from using dot-notation for property access.
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
The JSON Specification doesn't explicitly forbid using hyphens or any other characters in the name/value pairs of objects.
Whether it's a great idea is another, but most languages have no trouble dealing with special characters as the key, e.g. JavaScript:
var x = {"a-b": "hello"};
console.log(x['a-b']); // prints "hello"
Because a-b
is not a valid property name x.a-b
would not work as expected, but JavaScript has an alternative syntax for object dereferencing by using []
notation.
Another example, PHP:
$x = json_decode('{"a-b": "hello"}');
echo $x->{'a-b'};
Again, $x->a-b
would not work, so PHP supports dereferencing using ->{}
notation.