12

这是我正在使用的json 对象

{
    "name": "John Smith",
    "age": 32,
    "employed": true,
    "address": {
        "street": "701 First Ave.",
        "city": "Sunnyvale, CA 95125",
        "country": "United States"
    },
    "children": [
        {
            "name": "Richard",
            "age": 7
        },
        {
            "name": "Susan",
            "age": 4
        },
        {
            "name": "James",
            "age": 3
        }
    ]
}

我希望这是另一个键值对:

"collegeId": {
                      "eventno": "6062",
                      "eventdesc": "abc"
                                            }; 

我尝试了 concat 但这给了我 || 的结果 符号,我 cdnt 迭代。我使用了溢出,但只删除了逗号。

concattedjson = JSON.stringify(JSON.parse(json1).concat(JSON.parse(json2)));

如何将密钥对值添加到现有的 json 对象?我正在使用 JavaScript。

4

4 回答 4

13

这是最简单的方法,它对我有用。

var testJson = {
        "name": "John Smith",
        "age": 32,
        "employed": true,
        "address": {
            "street": "701 First Ave.",
            "city": "Sunnyvale, CA 95125",
            "country": "United States"
        },
        "children": [
            {
                "name": "Richard",
                "age": 7
            },
            {
                "name": "Susan",
                "age": 4
            },
            {
                "name": "James",
                "age": 3
            }
        ]
    };
    testJson.collegeId = {"eventno": "6062","eventdesc": "abc"};
于 2013-01-11T06:44:49.620 回答
3

您需要在引用“collegeId”处创建一个对象,然后为该对象创建另外两个键值对,如下所示:

var concattedjson = JSON.parse(json1);
concattedjson["collegeId"] = {};
concattedjson["collegeId"]["eventno"] = "6062";
concattedjson["collegeId"]["eventdesc"] = "abc";

假设 concattedjson 是您的 json 对象。如果您只有一个字符串表示形式,parse则在扩展它之前首先需要它。

编辑

demo对于那些认为这行不通的人。

于 2013-01-11T05:10:05.507 回答
3

只需使用将 JSON 字符串转换为对象JSON.parse(),然后添加属性。如果您需要将其重新转换为字符串,请执行JSON.stringify().

顺便说一句,没有 JSON 对象这样的东西。有对象,并且有表示这些对象的 JSON 字符串。

于 2013-01-11T05:12:59.347 回答
0
const newTestJson = JSON.parse(JSON.stringify(testJson));
newTestJson.collegeId = {"eventno": "6062","eventdesc": "abc"};
testJson = newTestJson;
于 2017-06-29T14:22:23.107 回答