首页 > 解决方案 > 如何使用 javascript 更新 JSON 对象而不删除旧值

问题描述

{
    "request_id": "8123",
    "lease_id": "",
    "renewable": false,
    "lease_duration": 4576,
    "data": {
        "mynew": "123",
        "name": "sample"
    },
    "wrap_info": null,
    "warnings": null,
    "auth": null
}

我正在尝试在数据下添加新值,添加新值后它应该是这样的:

{
    "request_id": "8123",
    "lease_id": "",
    "renewable": false,
    "lease_duration": 4576,
    "data": {
        "mynew": "123",
        "name": "sample"
    },
    {
        "mynew": "xyz",
        "name": "newsample"
    },
    "wrap_info": null,
    "warnings": null,
    "auth": null
}

标签: javascriptjson

解决方案


您的data属性应该是数组类型,以便您可以添加具有相同对象结构的多个对象,例如:

var obj = {
    "request_id": "8123",
    "lease_id": "",
    "renewable": false,
    "lease_duration": 4576,
    "data": [{
      "mynew": "123",
      "name": "sample"
    }, {
      "mynew": "xyz",
      "name": "newsample"
    }],
    "wrap_info": null,
    "warnings": null,
    "auth": null
};

然后,您可以通过将其推送到data数组来轻松添加新对象:

var obj = {
  "request_id": "8123",
  "lease_id": "",
  "renewable": false,
  "lease_duration": 4576,
  "data": [{
    "mynew": "123",
    "name": "sample"
  }],
  "wrap_info": null,
  "warnings": null,
  "auth": null
};
var newData = {
  "mynew": "xyz",
  "name": "newsample"
};
obj.data.push(newData);
console.log(obj);


推荐阅读