2015-02-15 22 views
12

ho dichiarato un oggetto JSON e ha aggiunto un po 'di coppia chiave-valore in quanto, come:come aggiungere coppia chiave-valore in oggetto JSON già dichiarato

var obj = {}; 

e ha aggiunto alcuni dati in esso come:

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

Ma voglio aggiungere più coppie di valori chiave nello stesso oggetto, se aggiungo coppia di valori chiave come sopra citato, sostituisce il vecchio. Quindi qualcuno potrebbe dirmi come posso aggiungere dati nello stesso oggetto JSON, ad esempio.

risposta

19

Potrebbe effettuare le seguenti operazioni:

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


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


obj[newNum] = newVal; 



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

Questo si tradurrà in un'eccezione thrown.It non ha senso usare 'JSON.parse()' su un oggetto JavaScript istanziato. – Pointy

+0

Anche '.push()' è un metodo array e non è disponibile per oggetti semplici. – Pointy

+0

tu; hai ragione a punta - ero frettoloso nella mia risposta! Sono aggiornato con una soluzione alternativa (di lavoro). ;-) – scgough

7

È possibile utilizzare la notazione del punto o la notazione staffa ...

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

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

È possibile aggiungere più coppia chiave-valore nello stesso oggetto senza sostituire quelli vecchi nel modo seguente:

var obj = {}; 

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

obj["3"] = "cc"; 

Di seguito è il co de ed il collegamento jsfiddle a campione demo che aggiungeranno più coppie valore-chiave al esisteva già obj sul click del tasto:

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

Prova seguenti semplici operazioni su un JSON, inserimento/aggiornamento/spingere:

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

possibile duplicato, modo migliore per raggiungere lo stesso come indicato di seguito:

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

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

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

+2

Sebbene questo collegamento possa rispondere alla domanda, è meglio includere qui le parti essenziali della risposta e fornire il link per riferimento. Le risposte di solo collegamento possono diventare non valide se la pagina collegata cambia. - [Dalla recensione] (/ recensione/post di bassa qualità/18012410) – Sid

Problemi correlati