2009-08-02 16 views
224

si tengo un objeto JSON dicen:eliminar un atributo de JSON

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

puedo eliminar 'key1' por lo que se convierte en:

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

Para ser pedante, es un objeto Javascript, no un "objeto JSON" JSON es la representación en forma de cadena del objeto Javascript. – Davy8

Respuesta

382

simple:

delete myObj.test.key1; 
+16

eliminar myObj.test ['key1']; funcionaría también – MyItchyChin

+26

Así 'eliminará myObj ['test'] ['key1']'; puede intercambiar 'whatever.x' y' whatever '' x '] 'siempre que' x' sea un nombre de variable válido, por lo que incluso 'delete myObj [' test ']. key1' funcionaría. –

+1

https://fiddle.jshell.net/jr0enbua/ Aquí hay un ejemplo usando delete –

82

El seleccionado La respuesta funcionaría siempre que conozca la clave en sí misma que desea eliminar, pero si fuera realmente dinámica, necesitaría usar la notación [] en lugar de la notación de puntos

Por ejemplo:

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

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

vez que tendría que utilizar:

delete myObj.test[keyToDelete]; 

Sustituto de la notación de puntos con [] notación para aquellos valores que desea evaluado antes de ser eliminados.

+0

me gusta la opción de dinamismo. me ayudó en mi caso eliminar dinámicamente una propiedad de un objeto json – user1862764

+0

Al verificar la solución anterior, piense en cuál es la solución si es una variable, gracias por ahorrarme el truco – zhihong

+0

Hola @praneetloke Tengo uno consulta obtengo JSON array Ex: [{\ "Countrycode \": \ "DE \", \ "count \": \ "3 \"}] pero quiero obtener como [{"DE": "3"} ] de esta manera, pero no obtengo esta salida. Por favor, ayúdenme –

Cuestiones relacionadas