通常,我看到的是{"attribute":241241}
但写这个完全相同:{attribute:241241}
。
{attribute:241241}
被认为是不好的做法,是否应该避免?
答案 0 :(得分:5)
{attribute:241241}
未使用JSONLint进行验证,所以是的,这是不好的做法,应该避免使用。
此外,如果您查看json.org处的JSON规范,您会发现对于对象,第一个值始终是一个字符串(用双引号表示)。
答案 1 :(得分:1)
根据规范here,名称/值对中的名称必须为string
类型。
对象是零个或多个名称/值对的无序集合, 其中名称是字符串,值是字符串,数字,布尔值, null,object或array。
答案 2 :(得分:1)
JSON specification要求引用键,因此第二种形式不是有效的JSON。
正如Snakes and Coffee所说,它是一个有效的Javascript对象文字(JSON所基于的),并且一些JSON解析器无论如何都会接受它。因此它可能在某些情况下有效,但迟早你会遇到一个功能完善的JSON解析器,拒绝你的非引用键,因为它们根据规范无效。
答案 3 :(得分:1)
在Javascript中,你正在混淆JSON和Object文字语法
var o = {
"attribute":241241
};
不是 JSON,但是对象文字。是的,引号在那里没用。