2012-03-01 4 views
1

пример:вставить имя и значение пары

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

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

{gender : male}

так, что он станет

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

+2

data.gender = "male"; ? –

+2

Это не действительно «объект JSON», который у вас есть, но JavaScript один. JSON - это текстовый формат, а BTW имена ключей должны быть двойными. –

+0

@RayToal: Не "педантичный" вообще. –

ответ

3

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

data.gender = "male"; 
1

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

var data = { name : "John",age : 19}; 
data.gender = "male"; 
3

Да, либо:

data.gender = "male"; 

или

data['gender'] = "male"; 

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

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

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

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

3
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 вы должны изменить и рекурсивно вызвать функцию У меня есть написанное выше.

+0

Jaider хотел добавить: Или без изменения данных: 'var merged = $ .extend ({}, data, update);' –

Смежные вопросы