[英]how to add an json array of object into array of objects?
For the json object : 对于json对象:
var str={
"roles":[
{
"roleId":"Abcd",
"envRoleName": "0101",
"roleName": "Admin",
"envCode":"HosJ",
"envName":"UoH"
},
{
"roleId":"efgh",
"envRoleName": "0102",
"roldeName": "User",
"envCode":"HosJ",
"envName":"HosJ"
}
]
}
and I have an array const available_roles: Role[] = []
而且我有一个数组const available_roles: Role[] = []
I am trying to insert each object from json array into the Role[]
by 我正在尝试将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] );
}
}
The available_roles
array is populated with 10 objects instead of just 2 objects. available_roles
数组填充了10个对象,而不是2个对象。 Can someone explain why this might be, please? 有人可以解释为什么会这样吗?
Why don't you just assign the object directly? 您为什么不直接分配对象?
var json = JSON.parse(str);
for(j = 0 ; j < json.roles.length ; j++) {
available_roles.push ( json.roles[j] );
}
No need of parse, Just do it directly becoz its already object. 无需解析,直接执行即可,因为它已经是对象。 JsFiddle 的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
is already a JSON object. str
已经是一个JSON对象。 You can use it directly without parsing: 您可以直接使用它而无需解析:
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] );
}
}
Some observations : 一些观察:
str
is already a JSON object
so no need to parse it again. 由于str
已经是JSON object
因此无需再次解析。 roles
into the available_roles
array diectly. 您可以将roles
直接推入available_roles
数组。 no need to do this type of condition j % numParams == 0
. 无需执行这种类型的条件j % numParams == 0
。 DEMO 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.