我有一个这样的数组:
message_list = [
{
"Main_body": "test msg",
"emp_name": "test",
"emp_salary": "5000 USD"
}
]
其长度(例如message_list.length
)为1。
现在我有另一个这样的数组:
added_user_data = [
{
"PostSharedLog": {
userids: "2,4,5"
},
"created": "2123123"
},
{
"PostSharedLog": {
userids: "3,1"
},
"created": "2123147"
}
]
它的长度(added_user_data.length
)是2。
我想将上面的数组added_user_data
推送到message_list
。
我尝试在for
循环中执行此操作,现在因为message_list的长度为1
,对于第二次迭代,由于message_list[1]
不存在而不会推送值未定义。但即使它不存在,我仍然想创建message_list[1]
。
如果我这样做:
for(var k =0;<count(added_user_data.length);k++)
{
message_list[k].PostSharedLog = added_user_data[k].PostSharedLog ;
}
它只追加数组added_user_data
中的第一行,并在我打印出message_list
时给出这样的输出:
[{
"Main_body": "test msg",
"emp_name": "test",
"emp_salary": "5000 USD",
"PostSharedLog": {
userids: "2,4,5"
} }]
第二次迭代根本不附加任何内容。
我想看下面的内容:
[{
"Main_body": "test msg",
"emp_name": "test",
"emp_salary": "5000 USD",
"PostSharedLog": {
userids: "2,4,5"
},
"PostSharedLog": {
userids: "3,1"
}
}]
答案 0 :(得分:0)
JSON对象基本上是Map
keys
和values
。对象中的每个key
必须是唯一的。
您发布的所需结果永远不会存在,因为PostSharedLog
只能存在一次。再次设置只会更改值。
同样userids
不是有效的JSON密钥,它应始终包含"
!
任何JSON linter都会告诉您原因。
{
"Main_body": "test msg",
"emp_name": "test",
"emp_salary": "5000 USD",
"PostSharedLog": {
userids: "2,4,5"
},
"PostSharedLog": {
userids: "3,1"
}
}
你可能需要做的是:
{
"MainBody": "test msg",
"EmployeeName": "test",
"EmployeeSalary": { "amount": 5000, "currency": "USD" },
"PostSharedLog": {
"UserIds": [2,4,5,3,1]
}
}
String
类型中存储多值字段,请使用真实的Array
! [1,2,3,4]
代替"1,2,3,4"
String
类型中存储mutlivalue字段,请使用真实的Object
! { amount: 5000, currency: "USD" }
代替"5000 USD"