2009-08-02 7 views
224

si j'ai un objet JSON dire:Supprimer un attribut JSON

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

Puis-je supprimer 'key1' il devient:

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

Juste pour être pédant, c'est un objet Javascript, pas un "objet JSON" JSON est la représentation sous forme de chaîne de l'objet Javascript. – Davy8

Répondre

382

simple:

delete myObj.test.key1; 
+16

delete myObj.test ['key1']; fonctionnerait aussi bien. – MyItchyChin

+26

Donc, 'supprimer myObj ['test'] ['key1']'; vous pouvez échanger 'whatever.x' et' whatever ['x'] 'tant que' x' est un nom de variable valide, donc même 'delete myObj ['test']. key1' fonctionnerait. –

+1

https://fiddle.jshell.net/jr0enbua/ Voici un exemple utilisant delete –

82

sélectionné la réponse fonctionnerait tant que vous connaissez la clé elle-même que vous voulez supprimer mais si elle doit être vraiment dynamique, vous devrez utiliser la notation [] à la place de la notation par points.

Par exemple:

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

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

au lieu que vous devez utiliser:

delete myObj.test[keyToDelete]; 

Remplacez la notation de points avec [] notation pour ces valeurs que vous voulez évaluer en avant d'être supprimé.

+0

j'aime l'option pour le dynamisme. cela m'a aidé dans mon propre cas à supprimer dynamiquement une propriété d'un objet json – user1862764

+0

Lors de la vérification de la solution ci-dessus, réfléchissez déjà à la solution si c'est une variable, merci de m'avoir permis de gagner du temps – zhihong

+0

Hey @praneetloke J'en ai un requête j'obtiens le tableau JSON Ex: [{\ "Countrycode \": \ "DE \", \ "count \": \ "3 \"}] mais je veux obtenir comme [{"DE": "3"} ] comme ça mais je ne reçois pas cette sortie S'il vous plaît aidez-moi –

Questions connexes