如何使用JavaScript在现有的JSON对象中添加新的键值对?

25
var json = {
    "workbookInformation": {
        "version": "9.1",
        "source-platform": "win"
    },
    "datasources1": {
        ...
    },
    "datasources2": {
        ...
    }
}

我需要在workbookInformation下添加新的键值对,例如:

var json={
    "workbookInformation": {
         "version": "9.1",
         "source-platform": "win",
         "new_key":"new_value"
    },
    "datasources1": {
        ...
    },
    "datasources2": {
        ...
    }
}

json['workbookInformation']['new_key'] = 'new_value';新增了一个新的键,将其添加到"workbookInformation"下。


json.workbookInformation['new_key'] = 'new_value' 这样做就可以了。 - Ajay Narain Mathur
3
FYI,那不是JSON,那是一个普通的JavaScript对象——JSON是一个字符串,如果你想向JSON添加一个新键,那将是非常困难的,哇塞。 - Jaromanda X
6个回答

43

在JS中向JSON对象添加新键值对有两种方法

var jsObj = {
    "workbookInformation": {
        "version": "9.1",
        "source-platform": "win"
    },
    "datasources1": {

    },
    "datasources2": {

    }
}

1.使用点(.)添加新属性

jsObj.workbookInformation.NewPropertyName ="Value of New Property"; 

2.添加新属性并像数组一样指定索引。

jsObj["workbookInformation"]["NewPropertyName"] ="Value of New Property"; 

最后

 json = JSON.stringify(jsObj);
 console.log(json)

9

如果您想要向JSON对象的每个键添加新的键和值,那么您可以使用以下代码,否则您可以使用其他答案中的代码 -

Object.keys(json).map(
  function(object){
    json[object]["newKey"]='newValue'
});

7

 const Districts=[
  {
    "District": "Gorkha",
    "Headquarters": "Gorkha",
    "Area": "3,610",
    "Population": "271,061"
  },
  {
    "District": "Lamjung",
    "Headquarters": "Besisahar",
    "Area": "1,692",
    "Population": "167,724"
  }
]
Districts.map(i=>i.Country="Nepal")
console.log(Districts)

如果您有一个JSON数组对象而不是一个简单的JSON。
const Districts= [
  {
    "District": "Gorkha",
    "Headquarters": "Gorkha",
    "Area": "3,610",
    "Population": "271,061"
  },
  {
    "District": "Lamjung",
    "Headquarters": "Besisahar",
    "Area": "1,692",
    "Population": "167,724"
  }
]

然后,您可以通过映射来添加新的键。
Districts.map(i=>i.Country="Nepal");

3

您的对象只是一个JavaScript对象,而不是JSON。您可以使用方括号表示法或点表示法,例如:

json["workbookInformation"]["new_key"] = "new_value";

var json={
    "workbookInformation": {
     "version": "9.1",
    "source-platform": "win"
    }
    
    }

json.workbookInformation.new_key = 'new_value';
console.log(json);


2
这应该可以工作:
json.workbookInformation.new_key = 'new_value';

0
json.workbookInformation.key = value;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接