2009-08-02 13 views
224

निकालें अगर मैं एक JSON वस्तु है कहते हैं:एक JSON विशेषता

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

मैं 'कुंजी 1' को हटा सकते हैं, तो यह हो जाता है:

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

बस पैडेंटिक होने के लिए, यह एक जावास्क्रिप्ट ऑब्जेक्ट है, न कि "JSON ऑब्जेक्ट" JSON जावास्क्रिप्ट ऑब्जेक्ट का स्ट्रिंग प्रस्तुति है। – Davy8

उत्तर

382

सरल:

delete myObj.test.key1; 
+16

myObj.test ['key1'] हटाएं; साथ ही काम करेगा। – MyItchyChin

+26

तो 'myObj [' test '] [' key1 ']' हटा देगा; जब तक 'x' एक वैध चर नाम है, तब तक आप 'जो भी .x' और' जो भी ['x'] 'का आदान-प्रदान कर सकते हैं, इसलिए' myObj ['test'] भी हटाएं। key1' काम करेगा। –

+1

https://fiddle.jshell.net/jr0enbua/ यहां –

82

चयनित उत्तर तब तक काम करेगा जब तक कि आप उस कुंजी को स्वयं जानते हैं जिसे आप हटाना चाहते हैं, लेकिन यदि यह वास्तव में गतिशील होना चाहिए तो आपको [] नोटेशन का उपयोग करने की आवश्यकता होगी डॉट नोटेशन।

उदाहरण के लिए:

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

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

बजाय आप का उपयोग करने की आवश्यकता होगी: [] उन मूल्यों के लिए अंकन है कि आप हटाए जाने से पहले का मूल्यांकन करना चाहते हैं के साथ

delete myObj.test[keyToDelete]; 

स्थानापन्न डॉट नोटेशन।

+0

मुझे गतिशीलता के विकल्प पसंद हैं। यह एक जेसन ऑब्जेक्ट – user1862764

+0

से गतिशील रूप से संपत्ति को हटाने के लिए अपने स्वयं के मामले में मदद करता है, ऊपर दिए गए समाधान की जांच करते समय, पहले से ही यह सोचने के लिए कि क्या यह एक चर है, समाधान के लिए मेरा समय बचाने के लिए धन्यवाद – zhihong

+0

हे @praneetloke मेरे पास एक है क्वेरी मुझे JSON सरणी पूर्व प्राप्त होती है: [{\ "देश कोड \": \ "DE \", \ "गिनती \": \ "3 \"}] लेकिन मैं [{"DE": "3"} ] इस तरह, लेकिन मुझे यह आउटपुट नहीं मिला कृपया मेरी मदद करें –

संबंधित मुद्दे