如何添加名称已作为另一个属性存在的JSON项
How to add a JSON item whose name already existed as another attribute?
我正在尝试创建这个:
var a = {
"requestM" : {
"task" : "list",
"listRequest" : {
"checkedEntryType" : "GLOBAL",
"targetList" : {
"maxResult" : "2",
"status" : "OPEN",
"entryType" : "CALL"
},
"targetList" : {
"maxResult" : "3",
"status" : "CLOSED",
"entryType" : "CALL"
},
"targetList" : {
"maxResult" : "2",
"status" : "OPEN",
"entryType" : "TODO"
},
"targetList" : {
"maxResult" : "2",
"status" : "CLOSED",
"entryType" : "TODO"
}
}
}
}
targetList没有嵌套在数组中,但它会重复。现在我尝试创建这样的消息:
var reqJson = {
"requestM" : {
"task" : "list",
"listRequest" : {
"checkedEntryType" : checkedEntryType
}
}
};
reqJson.requestM.listRequest.targetList={
"maxResult" : 10,
"status" : "OPEN",
"entryType" : "CALL"
};
reqJson.requestM.listRequest.targetList={
"maxResult" : 10,
"status" : "OPEN",
"entryType" : "TODO"
};
但是,第二个targetList将取代第一个targetList。如何避免这种情况?谢谢
键对于对象必须是唯一的。将其值设为数组。一旦您从JSON转换为JavaScript对象,就可以将数据推送到上面。
"listRequest" : {
"checkedEntryType" : "GLOBAL",
"targetList" : [
{
"maxResult" : "2",
"status" : "OPEN",
"entryType" : "CALL"
},
{
"maxResult" : "3",
"status" : "CLOSED",
"entryType" : "CALL"
}
]
我认为这是不可能的,因为在json对象中
var o =
{
"p1": value1,
"p2": value2
}
p1和p2被认为是对象的属性,因此重复的属性被覆盖。相反,尝试使用阵列
即
targetList : [ { "maxResult" : "2",
"status" : "OPEN",
"entryType" : "CALL"}, { "maxResult" : "3",
"status" : "CLOSED",
"entryType" : "CALL"}, {..} ]
相关文章:
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 如何通过HTML+CSS中的另一个元素Selector更改元素的属性值
- AngularJS:如何用同一对象的另一个属性访问一个属性
- 如果另一个属性相同,请删除该属性
- 使用数据属性将HTML数据复制到另一个元素
- 无法将react组件作为属性传递给另一个组件
- 如何使用元素's属性值,以针对jQuery中具有相同属性值的另一个元素
- 从类(动态)中获取css属性并将其添加到另一个类中
- 如何在 XML 中搜索特定属性以检索另一个属性
- 检查所有元素的属性并修改另一个元素
- 通过另一个对象上的字符串值为 javascript 对象属性赋值
- 使用 JQuery 从另一个元素的 id 为图像分配属性
- 如果指令包含在另一个指令中,我如何在隔离范围内添加双向数据绑定属性
- 如何使用jQuery访问属于函数内部另一个函数的对象的属性
- 如何使用jQuery只删除一个属性值而不删除另一个
- 将值和属性从一个对象合并到另一个对象
- 替换对象's属性,其中包含JavaScript中另一个对象的属性,不包含库
- 从另一个Javascript脚本(Canvas3D)更新QML属性
- 无法使用typescript访问angular中另一个控制器中声明的$rootscope属性
- 使用jquery将远程html-alt属性加载到另一个使用for循环和数组的页面中