2009-08-02 6 views
224

se ho un oggetto JSON dicono:Rimuovere un attributo JSON

var myObj = {'test' : {'key1' : 'value', 'key2': 'value'}} 

posso rimuovere 'key1' in modo che diventi:

{'test' : {'key2': 'value'}} 
+5

Giusto per essere pedante, questo è un oggetto Javascript, non un "oggetto JSON" JSON è la rappresentazione stringa dell'oggetto Javascript. – Davy8

risposta

382

Semplice:

delete myObj.test.key1; 
+16

elimina myObj.test ['key1']; funzionerebbe pure – MyItchyChin

+26

Così eliminerebbe myObj ['test'] ['key1'] '; puoi interscambiare 'whatever.x' e' whatever ['x'] 'finché' x' è un nome di variabile valido, quindi anche 'cancella myObj ['test']. key1' funzionerebbe. –

+1

https://fiddle.jshell.net/jr0enbua/ Ecco un esempio utilizzando delete –

82

Il selezionata la risposta funzionerebbe fino a quando si conosce la chiave stessa che si desidera eliminare, ma se dovesse essere veramente dinamica, sarà necessario utilizzare la notazione [] anziché la notazione a punti.

Ad esempio:

var keyToDelete = "key1"; 
var myObj = {"test": {"key1": "value", "key2": "value"}} 

//that will not work. 
delete myObj.test.keyToDelete 

invece si avrebbe bisogno di utilizzare:

delete myObj.test[keyToDelete]; 

Sostituto la notazione dot con [] notazione per quei valori che si desidera valutati prima di essere eliminati.

+0

mi piace l'opzione per il dinamismo. ha aiutato nel mio caso a rimuovere una proprietà dinamicamente da un oggetto json – user1862764

+0

Quando si controlla la soluzione sopra, già pensa a quale sia la soluzione se è una variabile, grazie per aver risparmiato il mio tempo per il trucco – zhihong

+0

Ehi @praneetloke ne ho uno query I get JSON array Ex: [{\ "Countrycode \": \ "DE \", \ "count \": \ "3 \"}] ma voglio ottenere come [{"DE": "3"} ] Mi piace questo, ma non ottengo questo output Per favore aiutami –

Problemi correlati