对于json对象:
var str={
"roles":[
{
"roleId":"Abcd",
"envRoleName": "0101",
"roleName": "Admin",
"envCode":"HosJ",
"envName":"UoH"
},
{
"roleId":"efgh",
"envRoleName": "0102",
"roldeName": "User",
"envCode":"HosJ",
"envName":"HosJ"
}
]
}
我有一个数组const available_roles: Role[] = []
我试图将json数组中的每个对象插入到Role[]
中
var json = JSON.parse(str); numParams = Object.keys(json.roles[0]).length;
for(j = 0 ; j < json.roles.length ; j++){
if(j % numParams == 0){
available_roles.push ( json.roles[j] );
}
}
available_roles
数组中填充了10个对象,而不仅仅是2个对象。有人可以解释为什么会这样吗?
答案 0 :(得分:0)
为什么不直接分配对象?
var json = JSON.parse(str);
for(j = 0 ; j < json.roles.length ; j++) {
available_roles.push ( json.roles[j] );
}
答案 1 :(得分:0)
无需解析,只需将其直接用于其已经的对象。JsFiddle
var str={
"roles":[
{
"roleId":"Abcd",
"envRoleName": "0101",
"roleName": "Admin",
"envCode":"HosJ",
"envName":"UoH"
},
{
"roleId":"efgh",
"envRoleName": "0102",
"roldeName": "User",
"envCode":"HosJ",
"envName":"HosJ"
}
]
}
var availableuser = [];
for(j = 0 ; j < str.roles.length ; j++)
{
console.log(str.roles[j])
availableuser.push(str.roles[j]);
}
console.log(availableuser);
答案 2 :(得分:0)
str
已经是JSON对象。
您可以直接使用它而无需解析:
var numParams = Object.keys(str.roles[0]).length;
for(j = 0 ; j < str.roles.length ; j++)
{
if(j % numParams == 0){
available_roles.push ( str.roles[j] );
}
}
答案 3 :(得分:0)
一些观察结果:
str
已经是JSON object
,因此无需再次解析它。roles
推送到available_roles
阵列中。无需执行此类条件j % numParams == 0
。<强>样本强>
var str = {
"roles": [{
"roleId": "Abcd",
"envRoleName": "0101",
"roleName": "Admin",
"envCode": "HosJ",
"envName": "UoH"
}, {
"roleId": "efgh",
"envRoleName": "0102",
"roldeName": "User",
"envCode": "HosJ",
"envName": "HosJ"
}]
};
var json = str;
var available_roles = [];
for(j = 0 ; j < json.roles.length ; j++){
available_roles.push(json.roles[j]);
}
console.log(available_roles);
&#13;