Добавление пары значений ключа в объект json

Это объект 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.

Ответ 1

Это самый простой способ, и он работает со мной.

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"};

Ответ 2

Вам нужно сделать объект по ссылке "collegeId", а затем для этого объекта сделать еще две пары ключевых значений:

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

Предполагая, что concattedjson - ваш json-объект. Если у вас есть только строковое представление, вам нужно parse сначала до его расширения.

Edit

demo для тех, кто считает, что это не сработает.

Ответ 3

Просто преобразуйте строку JSON в объект с помощью JSON.parse(), а затем добавьте свойство. Если вам понадобится его обратно в строку, сделайте JSON.stringify().

Кстати, нет такой вещи, как объект JSON. Есть объекты, и есть строки JSON, которые представляют эти объекты.

Ответ 4

const newTestJson = JSON.parse(JSON.stringify(testJson));
newTestJson.collegeId = {"eventno": "6062","eventdesc": "abc"};
testJson = newTestJson;