繁体   English   中英

如何在已经声明的 JSON 对象中添加键值对

[英]how to add key value pair in the JSON object already declared

我已经声明了一个 JSON 对象并在其中添加了一些键值对,例如:

var obj  = {};

并向其中添加了一些数据,例如:

obj = {
"1":"aa",
"2":"bb"
};

但是我想在同一个对象中添加更多的键值对,如果我添加上面提到的键值对,那么它会替换旧的。 那么任何人都可以告诉我如何在同一个 JSON 对象中附加数据,即 obj。

你能不能做到以下几点:

obj = {
    "1":"aa",
    "2":"bb"
};


var newNum = "3";
var newVal = "cc";


obj[newNum] = newVal;



alert(obj["3"]); // this would alert 'cc'

您可以使用点符号或括号符号...

var obj = {};
obj = {
  "1": "aa",
  "2": "bb"
};

obj.another = "valuehere";
obj["3"] = "cc";

对象分配将一个或多个源对象复制到目标对象。 所以我们可以在这里使用Object.assign

语法: Object.assign(target, ...sources)

 var obj = {}; Object.assign(obj, {"1":"aa", "2":"bb"}) console.log(obj)

您可以通过以下方式在同一对象中添加更多键值对而无需替换旧键值对:

var obj = {};

obj = {
"1": "aa",
"2": "bb"
};

obj["3"] = "cc";

下面是示例演示的代码和 jsfiddle 链接,单击按钮时,它将向已存在的 obj 添加更多键值对:

var obj = {
    "1": "aa",
    "2": "bb"
};

var noOfItems = Object.keys(obj).length;

$('#btnAddProperty').on('click', function() {
    noOfItems++;
    obj[noOfItems] = $.trim($('#txtName').val());
    console.log(obj);
});

https://jsfiddle.net/shrawanlakhe/78yd9a8L/4/

请尝试对 json 执行以下简单操作,插入/更新/推送:

var movie_json = {
                    "id": 100,
                 };

//to insert new key/value to movie_json
movie_json['name'] = 'Harry Potter';
console.log("new key: " + movie_json);

//to update a key/value in movie_json
movie_json['id'] = 101;
console.log("updated key: " +movie_json);

//adding a json array to movie_json and push a new item.
movie_json['movies']=["The Philosopher's Stone"];
movie_json['movies'].push('The Chamber of Secrets');
console.log(movie_json);

嗨,我为每个对象添加键和值

 let persons = [ { name : "John Doe Sr", age: 30 },{ name: "John Doe Jr", age : 5 } ] function addKeyValue(obj, key, data){ obj[key] = data; } let newinfo = persons.map(function(person) { return addKeyValue(person, 'newKey', 'newValue'); }); console.log(persons);

你可以试试lodash

json 对象的示例代码:

 var user = {'user':'barney','age':36}; user["newKey"] = true; console.log(user);
 <script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script> <script src="lodash.js"></script>

对于 json 数组元素

示例代码:

 var users = [ { 'user': 'barney', 'age': 36 }, { 'user': 'fred', 'age': 40 } ]; users.map(i=>{i["newKey"] = true}); console.log(users);
 <script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script> <script src="lodash.js"></script>

可能重复,实现相同的最佳方法如下所述:

function getKey(key) {
  return `${key}`;
}

var obj = {key1: "value1", key2: "value2", [getKey('key3')]: "value3"};

https://stackoverflow.com/a/47405116/3510511

暂无
暂无

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

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