javascript - 如何添加名称已作为另一个属性存在的 JSON 项?

标签 javascript arrays json

我正在尝试创建这个:

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 将替换第一个。如何避免这种情况?谢谢!

最佳答案

键对于对象来说必须是唯一的。使其值成为一个数组。一旦您从 JSON 转换为 JavaScript 对象,您就可以 push数据到其上。

"listRequest" : {
    "checkedEntryType" : "GLOBAL",
    "targetList" : [
    {
        "maxResult" : "2",
        "status" : "OPEN",
        "entryType" : "CALL"
    },
    {
        "maxResult" : "3",
        "status" : "CLOSED",
        "entryType" : "CALL"
    }
    ]

关于javascript - 如何添加名称已作为另一个属性存在的 JSON 项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6106668/

相关文章:

javascript - HTML/CSS - 基于浏览器大小的 float 图像

java - Java 中的迭代数组

json - 使用路径检索json中的子级

javascript - 选择当前日期

javascript - 使用javascript获取SVG路径ID

java - 在 for 循环和数组 printint 之间切换。 java

json - Play 2.1特质的Json序列化?

json - 将 json 文件导入沙发 db-

javascript - 对嵌套对象使用 Lodash countBy

Python 列表 - True/False 前两个元素?