javascript - 如何通过键引用从 JSON 对象中删除元素?

标签 javascript json associative-array

我选择这个 JSON 结构来存储一些数据,因为我认为通过它的键引用每个对象会很容易,但我似乎无法通过键正确地删除一个元素。

JSON 对象:

[{
    "a74bb26c-c23f-e711-80da-0050568f4ab2": {
        "VersionCode": "0ODD6109",
        "VersionQualifier": "",
        "ProductID": "WRAP",
    }
}, {
    "a74fff6c-c23f-e711-80da-0050568f4ab2": {
        "VersionCode": "0ODD6109",
        "VersionQualifier": "",
        "ProductID": "WRAP",
    }
}]

什么时候

key="a74fff6c-c23f-e711-80da-0050568f4ab2"

dataObj = {
            "VersionCode": "0ODD6109",
            "VersionQualifier": "",
            "ProductID": "WRAP",
           }

我可以使用以下方式轻松添加项目:

dataObject = an object with properties
newItem = {}
newItem[key] = dataObj
myJsonObj.push(newItem).

当我将键作为变量时,如何删除项目?

这没有用:

delete myJsonObj[key]

这也没有用:

var index = myJsonObj.indexOf(node, 0);
if (index > -1) {
     myJsonObj.splice(index, 1);
}

最佳答案

你的 json格式错误。您应该删除 ProductID:"WRAP", <--- this comma 之后的逗号.这里有效json :

[{
    "a74bb26c-c23f-e711-80da-0050568f4ab2": {
        "VersionCode": "0ODD6109",
        "VersionQualifier": "",
        "ProductID": "WRAP"
    }
}, {
    "a74fff6c-c23f-e711-80da-0050568f4ab2": {
        "VersionCode": "0ODD6109",
        "VersionQualifier": "",
        "ProductID": "WRAP"
    }
}]

删除一个元素。只需使用:JSONArray = JSONArray.filter(obj => !obj[keyToBeFilteredOut]);

关于javascript - 如何通过键引用从 JSON 对象中删除元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48465207/

相关文章:

javascript - cz ccTLD 域正则表达式验证

javascript - 将背景颜色分配给数组中的类

javascript - ReactJS 改变子类的另一个类的状态

javascript - angular 2 服务不调用 php 文件

php - 替换多维数组中的键时缺少值

bash 4.x assoc 数组在接收函数中丢失键

javascript - 在 React 中检测 2 个键的 onKeyPress

javascript - 使用ajax成功方法访问json中的特定元素

javascript - 未捕获的类型错误 : Cannot read property 'length' of null JSON-JQUERY

oracle - 从函数返回 Oracle 关联数组