2015-02-15 12 views
12

I zadeklarowały obiekt JSON i dodano kilka par wartości klucza w które lubię:jak dodać parę wartości klucza w obiekcie JSON już ogłoszony

var obj = {}; 

i dodaje pewne dane w nim podoba:

obj = { 
"1":"aa", 
"2":"bb" 
}; 

Ale chcę dodać więcej pary klucz-wartość w tym samym obiekcie, jeśli dodaję par klucz-wartość wyżej wspomnianą, to zastępuję starą. Czy ktokolwiek mógłby mi powiedzieć, w jaki sposób mogę dołączyć dane do tego samego obiektu JSON, np. Obj.

Odpowiedz

19

można wykonać następujące czynności:

obj = { 
    "1":"aa", 
    "2":"bb" 
}; 


var newNum = "3"; 
var newVal = "cc"; 


obj[newNum] = newVal; 



alert(obj["3"]); // this would alert 'cc' 
+0

Spowoduje to wyjątek stanowi thrown.It ma sensu używać 'JSON.parse()' na to instancję obiektu JavaScript. – Pointy

+0

Również '.push()' jest metodą tablicową i nie jest dostępna dla zwykłych obiektów. – Pointy

+0

Ty, w porządku, Pointy - pochopnie podszedłem do mojej odpowiedzi! Zaktualizowałam alternatywne (działające) rozwiązanie. ;-) – scgough

7

Można używać notacji kropki lub notacji nawiasu ...

var obj = {}; 
obj = { 
    "1": "aa", 
    "2": "bb" 
}; 

obj.another = "valuehere"; 
obj["3"] = "cc"; 
1

Można dodać więcej par wartości klucza w tym samym obiekcie bez wymiany stare w następujący sposób:

var obj = {}; 

obj = { 
"1": "aa", 
"2": "bb" 
}; 

obj["3"] = "cc"; 

Poniżej znajduje się co de i jsfiddle Link do próbki demo, które będzie dodać więcej par wartości klucza do istniała już OBJ na kliknięcie przycisku:

var obj = { 
    "1": "aa", 
    "2": "bb" 
}; 

var noOfItems = Object.keys(obj).length; 

$('#btnAddProperty').on('click', function() { 
    noOfItems++; 
    obj[noOfItems] = $.trim($('#txtName').val()); 
    console.log(obj); 
}); 

https://jsfiddle.net/shrawanlakhe/78yd9a8L/4/

0

Spróbuj następujące proste operacje na json, wstawić/aktualizacja/wcisnąć:

var movie_json = { 
        "id": 100, 
       }; 

//to insert new key/value to movie_json 
movie_json['name'] = 'Harry Potter'; 
console.log("new key: " + movie_json); 

//to update a key/value in movie_json 
movie_json['id'] = 101; 
console.log("updated key: " +movie_json); 

//adding a json array to movie_json and push a new item. 
movie_json['movies']=["The Philosopher's Stone"]; 
movie_json['movies'].push('The Chamber of Secrets'); 
console.log(movie_json); 
0

możliwy duplikat, najlepszym sposobem, aby osiągnąć taki sam jak nizej:

function getKey(key) { 
    return `${key}`; 
} 

var obj = {key1: "value1", key2: "value2", [getKey('key3')]: "value3"}; 

https://stackoverflow.com/a/47405116/3510511

+2

Podczas gdy ten link może odpowiedzieć na pytanie, lepiej umieścić tutaj istotne części odpowiedzi i podać odnośnik. Odpowiedzi dotyczące linków mogą stać się nieprawidłowe, jeśli strona z linkami się zmieni. - [Z recenzji] (/ opinia/niskiej jakości-posts/18012410) – Sid

Powiązane problemy