第一次使用javascript和JSON。好奇为什么会导致编译器错误:
var dataTypes = new function() {
this.list = "list"; this.boolean = "boolean";
};
var jsonDataTypes = [
{dataTypes.list:"Food For Lunch"}
];
如果没有。
var dataTypes = new function() {
this.list = "list"; this.boolean = "boolean";
};
var jsonDataTypes = [
{"Food For Lunch":dataTypes.list}
];
为什么我允许使用变量作为值而不是密钥?
错误是:
Multiple markers at this line
- Missing semicolon
- Syntax error on token(s), misplaced
construct(s)
- Missing semicolon
- Syntax error on tokens, delete these
tokens
答案 0 :(得分:3)
首先,您正在使用JavaScript对象,而不是JSON。对象是JavaScript中的数据类型,而JSON是数据传输格式。
对象文字内的键必须是有效的标识符,字符串或数字,因为键的解释字面。标识符不允许包含点(.
)和其他某些字符。有关详细信息,请参阅specification。
如果您想使用dataTypes.list
的值作为键,则必须分两步创建对象:
var jsonDataTypes = [{}];
jsonDataTypes[0][dataTypes.list] = "Food For Lunch";
或者如果你想按字面意思使用它,请使用字符串:
var jsonDataTypes = [
{"dataTypes.list": "Food For Lunch"}
];
答案 1 :(得分:1)
由于JS语法。但是你可以做到以下几点:
var jsonDataTypes = [{}];
jsonDataTypes[0][dataTypes.list] = "Food For Lunch";
答案 2 :(得分:1)
JavaScript对象语法不允许评估Key
。我想你可以做以下事情:
var jsonDataTypes = [];
var obj = {};
obj[dataTypes.list] = "Food For Lunch";
jsonDataTypes.push(obj);