繁体   English   中英

无法在 json ZA8CFDE6331BD59EB2AC96F8911C4B666 的 json object 中添加键值对

[英]Not able to add key value pair in a json object from a json object

我想从另一个 json ZA8CFDE6331BD59EB2AC96F8911C4B666 向我的 json object 添加键值对。

我试图阅读许多 stackoverflow 类似的问题,但这些解决方案都不适用于我的情况。

 const oValues = { action: "Open Browser & Login", password: "something", url: "https://***manage", user: "user1", } var mElementsData = { pages: [{ groups: [{ elements: [{}] }] }] }; for (var key in oValues) { if (oValues.hasOwnProperty(key)) { mElementsData.pages.groups.elements["label"] = key; mElementsData.pages.groups.elements["value"] = oValues[key]; } } console.log(mElementsData);

您的pagesgroupselements元素都是对象的 arrays ,因此您需要引用特定的数组元素( [0] )来设置值:

 var mElementsData = { pages: [{ groups: [{ elements: [{}] }] }] }; var oValues = { key: "value" }; for (var key in oValues) { if (oValues.hasOwnProperty(key)) { mElementsData.pages[0].groups[0].elements[0]["label"] = key; mElementsData.pages[0].groups[0].elements[0]["value"] = oValues[key]; } } console.log(mElementsData);

页面数组,因此您必须循环并将 object 与键和值对绑定

var mElementsData = {
   pages: [{
        groups: [{
            elements: [{}]
        }]
    }]
};

var oValues = {
    action: "Open Browser & Login",
    password: "something",
    url: "https://***manage",
    user: "user1",
}

for (var key in oValues) {
    if (oValues.hasOwnProperty(key)) {
        for (let i = 0; i < mElementsData.pages.length; i++) {
            let pages = mElementsData.pages[i]
            for (let j = 0; j < pages.groups.length; j++) {
                pages.groups[j].elements[j][key] = oValues[key]
            }
        }
    }
}
console.log(mElementsData)

您的嵌套属性不是对象,而是对象的 arrays,因此您无法通过点符号访问它们。 您可以通过索引访问它们,这是一个示例:

 const oValues = { action: "Open Browser & Login", password: "something", url: "https://***manage", user: "user1", } var mElementsData = { pages: [{ groups: [{ elements: [] }] }] }; for (var key in oValues) { if (oValues.hasOwnProperty(key)) { const element = { label: key, value: oValues[key] }; mElementsData.pages[0].groups[0].elements.push(element); } } console.log(mElementsData);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM