我的代码就像
var param="abc";
var data = {abc:1,xyz:2};//json data
console.log(data.abc);
//console.log(data.param);
在使用data
访问data.abc
时,其结果为1.但是当我尝试使用参数param
传递此“abc”时,其显示未定义。
这里没有天气可以使用data
访问param
如果是,那么如何???
有人可以帮我吗???
答案 0 :(得分:5)
JSON只是一种序列化格式,它在字符串中使用基于文本的JavaScript子集 - 在JavaScript中使用对象不是JSON(我承认它的名称略微令人困惑,比如说至少)。
要做你想做的事,只需使用方括号:
console.log(data[param]);
它允许将任何表达式放入其中,并将返回值转换为字符串,然后用于访问对象上的属性 - 这允许动态使用param
等变量。
例如,以下是使用方括号表示法时出现的一些结果:
var foo =
{ '[object Object]': 1
, bar: 2 };
var x = "bar";
foo[{}]; // 1
foo['[object Object]']; // 1
foo.[object Object]; // SyntaxError: Unexpected token [
foo[bar]; // ReferenceError: bar is not defined
foo.bar; // 2
foo["bar"]; // 2
foo[x]; // 2
foo.x; // undefined
答案 1 :(得分:2)
console.log(data[param]);
应该这样做。