无法访问javascript json属性
Cannot access javascript json properties?
我有一个json对象,它有4个MAKE、4个MODEL、4个YEAR、4个STATE、4个PLATE和4个COLORs属性:
Object {MAKE1="xxx ", MODEL1='xxx', YEAR1='xxx', STATE1='xxx', PLATE1='xxx', COLOR1='xxx', MAKE2='xxx', MODEL2='xxx' ,..., MAKE3='xx',..., MAKE4='xxx',...,COLOR4='xxx'}
我的javascript:
function displayPP() {
$.getJSON('/ipad/api/formpp/' + personId + '/getmemberlatestpp', function(data) {
for (var index=1; index<5; index++) {
$('#ppBody').append('<tr>');
var MAKE = 'MAKE' + index, MODEL = 'MODEL' + index, YEAR = 'YEAR' + index, STATE = 'STATE' + index, PLATE = 'PLATE' + index, COLOR= 'COLOR' + index;
var HTML = '<td>' + data.MAKE + '</td><td>' + data.MODEL + '</td><td>' + data.YEAR + '</td><td>' + data.STATE + '</td><td>' + data.PLATE + '</td><td>' + data.COLOR + '</td>';
$('#ppBody').append(HTML);
$('#ppBody').append('</tr>');
}
});
}
所有json属性都以未定义的形式返回。为什么?如果我做数据。MAKE1,数据。MAKE2。。。它运行良好。
var foo = "X"; data.foo
将引用foo
属性,而不是X
属性。
如果要使用变量来表示特性名称,则必须使用方括号表示法(采用字符串而不是标识符)。
data[foo]
也就是说,除了末尾的数字计数器之外,永远不要有共享名称的东西。使用正确的数据结构:
[
{
"make": "xxx",
"model": "xxx",
"year": "xxx",
"state": "xxx",
"plate": "xxx",
"color": "xxx"
},
{
"make": "xxx",
"model": "xxx",
"year": "xxx",
"state": "xxx",
"plate": "xxx",
"color": "xxx"
}
]
您可以使用括号符号使用字符串访问您的属性
data['MAKE' + index]
您正在创建一个类似MAKE = 'MAKE1'
的变量,但在使用data.MAKE
时并没有实际使用它。这将尝试从data
访问名为'MAKE'
的属性。要从字符串中查找变量,需要使用括号表示法,如data[MAKE]
。
以下是更正后的版本,它取代了所有不正确的点属性查找:
function displayPP() {
$.getJSON('/ipad/api/formpp/' + personId + '/getmemberlatestpp', function(data) {
for (var index=1; index<5; index++) {
$('#ppBody').append('<tr>');
var MAKE = 'MAKE' + index, MODEL = 'MODEL' + index, YEAR = 'YEAR' + index, STATE = 'STATE' + index, PLATE = 'PLATE' + index, COLOR= 'COLOR' + index;
var HTML = '<td>' + data[MAKE] + '</td><td>' + data[MODEL] + '</td><td>' + data[YEAR] + '</td><td>' + data[STATE] + '</td><td>' + data[PLATE] + '</td><td>' + data[COLOR] + '</td>';
$('#ppBody').append(HTML);
$('#ppBody').append('</tr>');
}
});
}
相关文章:
- 正在打印JSON属性
- 如何将返回一串数字的 JSON 属性转换为日期
- 如何在 JSF 中将 JS 函数作为 JSON 属性传递给前端
- 使用循环更新 JSON 属性值
- 获取json属性duktape
- 正在创建JSON属性
- 当鼠标悬停在一行上时,哪个plot.ly json属性可以显示所有悬停数据
- 访问等于 javascript 中特定值的 JSON 属性
- 具有嵌套 json 属性的行
- 对 JSON 属性进行分组和合并
- 将参数作为引用传递以获取 JSON 属性
- 基于 JSON 属性的角度 img 开关
- 使用变量访问 JSON 属性(字符串)
- 如何获取基于另一个属性的 JSON 属性
- 如何在解析时更改 JSON 属性名称
- 角度 ng-grid:如何访问以递增整数命名的 json 属性
- 返回 JSON 属性
- Nodejs JSON 属性未定义
- Angularjs 如何将 json 属性(Set 或数组)绑定到动态输入表单
- 无法动态获取正确的 json 属性