使用 JavaScript 向 JSON 对象添加新属性(元素)

IT技术 javascript json
2021-01-22 18:18:37

如何使用 JavaScript 向 JSON 对象添加新属性(元素)?

6个回答

JSON 代表 JavaScript 对象表示法。JSON 对象实际上是一个尚未转换为它所代表的对象的字符串。

要将属性添加到 JS 中的现有对象,您可以执行以下操作。

object["property"] = value;

或者

object.property = value;

如果您提供一些额外的信息,例如您在上下文中需要做什么,您可能会得到更量身定制的答案。

@EduardoLucio 那是因为您应该使用JSON.stringify.
2021-03-16 18:18:37
@shanehoban 这里a是 JSON,a.s正如你刚刚定义的那样是一个字符串。现在您正在尝试添加["subproperty"]到一个字符串。你现在明白为什么你得到错误了吗?
2021-03-26 18:18:37
@shanehoban 检查我在顶部的答案,您将看到如何一次添加多个属性。
2021-03-30 18:18:37
对于初学者,请记住,正如 Quintin 所说,JSON“对象”根本不是对象,它只是一个字符串。在使用他的示例之前,您需要使用 JSON.parse() 将其转换为实际的 Javascript 对象object["property"] = value;
2021-03-31 18:18:37
@EduardoLucio 问题不在于console.log序列化。使用console.log(JSON. stringify(object)).
2021-04-05 18:18:37
var jsonObj = {
    members: 
           {
            host: "hostName",
            viewers: 
            {
                user1: "value1",
                user2: "value2",
                user3: "value3"
            }
        }
}

var i;

for(i=4; i<=8; i++){
    var newUser = "user" + i;
    var newValue = "value" + i;
    jsonObj.members.viewers[newUser] = newValue ;

}

console.log(jsonObj);
很好的例子。这对我有帮助。
2021-04-02 18:18:37
正是我正在寻找的,必须以编程方式构造名称时添加元素
2021-04-10 18:18:37

JSON 对象只是一个 javascript 对象,因此 JavaScript 是一种基于原型的语言,您所要做的就是使用点符号来解决它。

mything.NewField = 'foo';
就是这样,我喜欢 javascript 原型!
2021-03-23 18:18:37

使用 ECMAScript 自 2015 年以来,您可以使用扩展语法(……三个点):

let  people = { id: 4 ,firstName: 'John'};
people = { ...people, secondName: 'Fogerty'};

它允许您添加子对象:

people = { ...people, city: { state: 'California' }};

结果将是:

{  
   "id": 4,
   "firstName": "John",
   "secondName": "Forget",
   "city": {  
      "state": "California"
   }
}

您还可以合并对象:

var mergedObj = { ...obj1, ...obj2 };

感谢这篇文章。我想添加一些有用的东西。

对于IE来说,使用就好

object["property"] = value;

语法,因为 IE 中的某些特殊词可能会给您带来错误。

一个例子:

object.class = 'value';

这在 IE 中失败,因为“”是一个特殊的词。我花了几个小时来解决这个问题。

@Sunil Garg 您将如何将该值作为子对象存储到原始对象中的某个父对象?
2021-03-27 18:18:37