![](/img/trans.png)
[英]How to add attribute to the root of JSON object consists of array of objects?
[英]how to add an json array of object into array of objects?
对于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个对象。 有人可以解释为什么会这样吗?
您为什么不直接分配对象?
var json = JSON.parse(str);
for(j = 0 ; j < json.roles.length ; j++) {
available_roles.push ( json.roles[j] );
}
无需解析,直接执行即可,因为它已经是对象。 的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);
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] );
}
}
一些观察:
str
已经是JSON object
因此无需再次解析。 roles
直接推入available_roles
数组。 无需执行这种类型的条件j % numParams == 0
。 DEMO
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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.