введите имя и пару значений - PullRequest
0 голосов
/ 01 марта 2012

пример:

var data = { name : "John",age : 19}

Я хочу добавить еще одну пару внутри объекта json.

{gender : male}

, чтобы он былстать

data = { name : "John",age : 19,gender : "male" }

Ответы [ 5 ]

3 голосов
/ 01 марта 2012
var data = { name : "John",age : 19};
var update = {gender : "male"};


function merge(target, source){
    for(var prop in source){
        target[prop] = source[prop];
    }
    return target;
}

var merged = merge(data, update);

Это добавит все свойства в update к data. Использование возвращаемого значения необязательно. data само обновляется внутри функции как объект.

Или, если вы используете jQuery

var merged = $.extend(data, update);

Используя jQuery, мы можем выполнить глубокое слияние

var update = {gender : "male", address:{house:"house1", street:"street1", pin:"pin1"}};
var merged = $.extend(true, data, update);

Чтобы добиться того же, используя обычный javascript, вы должны изменить и рекурсивно вызвать функцию, которую я написал выше.

3 голосов
/ 01 марта 2012

Да, либо:

data.gender = "male";

или

data['gender'] = "male";

(Это эквивалентно.)

Если вы используете jQuery (или одну из многих других библиотек), у вас может быть функция «extension», которая полезна для этого. Он «объединяет» два объекта Javascript. В jQuery:

$.extend(data, { gender: "male" });

Это хорошо, потому что вы можете расширить объект JSON несколькими значениями.

3 голосов
/ 01 марта 2012

Все, что вам нужно, это

data.gender = "male";
1 голос
/ 01 марта 2012
data.gender = "male"

Дополнительная информация здесь: Динамически добавлять пары значений имени переменной в объект JSON

1 голос
/ 01 марта 2012

Попробуйте это:

var data = { name : "John",age : 19};
data.gender = "male";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...