Json तत्व निकालें


111

मैं JSON तत्व या JSON से एक पूरी पंक्ति को हटाना चाहता हूं।

मेरे पास JSON स्ट्रिंग है:

{
   "result":[
       {
           "FirstName": "Test1",
           "LastName":  "User",
       },
       {
           "FirstName": "user",
           "LastName":  "user",
       },
       {
           "FirstName": "Ropbert",
           "LastName":  "Jones",
       },
       {
           "FirstName": "hitesh",
           "LastName":  "prajapti",
       }
   ]
}

1
मुझे लगता है कि आपको अभी भी कुछ json त्रुटियाँ मिली हैं
संतोष लिंखा

3
के संभावित डुप्लिकेट एक JSON विशेषता निकालें
ChrisF

1
मैंने सवाल का जवाब दिया, आप इसे देखना चाहते हैं। मैंने जवाब जोड़ा क्योंकि बहुत से लोग इस बात पर ध्यान नहीं देते कि कचरा संग्रहण कैसे काम करता है।
गेम्स ब्रेनियाक

@ क्रिस - डुप्लिकेट नहीं, क्योंकि डिलीट करने से सरणी में "अपरिभाषित" आइटम
बन जाएगा

जवाबों:


188
var json = { ... };
var key = "foo";
delete json[key]; // Removes json.foo from the dictionary.

आप ऐरे से तत्वों को हटाने के लिए ब्याह का उपयोग कर सकते हैं ।


5
शीर्ष पर हमेशा सबसे खराब उत्तर क्यों होते हैं? क्या यह संभवतः रेप पॉइंट हो सकता है? मैंने खोजा। मुझे मिला। आपके पास सही उत्तर था।
एरिक लेरॉय

1
मुझे यह उत्तर नहीं मिला। परीक्षण डेटा में "फू" कहां है?
टोनी

9
परीक्षण डेटा में फू कहां है? खैर, पहली पंक्ति वास्तव में स्यूडोकोड है। Json = {...} के बजाय, यह json = {foo: 'value'} जैसा कुछ होगा
aharris88

5
json [की] हटाएं; ? दिए गए उदाहरण में कितने "फर्स्टनाम" हैं? गलत जवाब।
एगुरेल्ली

3
डिलीट का उपयोग करने से सरणी में एक अशक्त तत्व निकल जाएगा
माइक

21

अपने JSON में कमिंग ट्रेल्स न रखें

अद्यतन : यदि आप ऑब्जेक्ट में सरणी से आइटम निकालना चाहते हैं, तो आपको array.splice का उपयोग करना होगा और हटाना नहीं होगा

var data = {
  "result": [{
    "FirstName": "Test1",
    "LastName": "User"
  }, {
    "FirstName": "user",
    "LastName": "user"
  }]
}
console.log(data.result);
console.log("------------ deleting -------------");
delete data.result[1];
console.log(data.result); // note the "undefined" in the array.


data = {
  "result": [{
    "FirstName": "Test1",
    "LastName": "User"
  }, {
    "FirstName": "user",
    "LastName": "user"
  }]
}

console.log(data.result);
console.log("------------ slicing -------------");
var deletedItem = data.result.splice(1,1);
console.log(data.result); // here no problem with undefined.


15

आप JSON को निम्नानुसार हटाने का प्रयास कर सकते हैं:

var bleh = {first: '1', second: '2', third:'3'}

alert(bleh.first);

delete bleh.first;

alert(bleh.first);

वैकल्पिक रूप से, आप किसी विशेषता को हटाने के लिए सूचकांक में भी पास हो सकते हैं:

delete bleh[1];

हालांकि, हटाए गए का उपयोग कर के नतीजों में से कुछ को समझने के लिए, एक नजर है यहाँ


6
  1. JSON में त्रुटियों को ठीक करें: http://jsonlint.com/
  2. JSON को पार्स करें (चूंकि आपने जावास्क्रिप्ट के साथ प्रश्न को टैग किया है, json2.js का उपयोग करें )
  3. आपके द्वारा बनाई गई ऑब्जेक्ट से संपत्ति हटाएं
  4. JSON पर वापस ऑब्जेक्ट स्ट्रिंग करें।

Drat - जब आप कॉमा निकाल रहे थे तो आपने जवाब दिया :(
mplungjan

6

जैसा कि @mplungjan द्वारा वर्णित है, मैं हालांकि यह सही था। फिर तुरंत मैं अप दर बटन पर क्लिक करता हूं। लेकिन इसका पालन करते हुए, मुझे अंततः एक त्रुटि मिली।

<script>
var data = {"result":[
  {"FirstName":"Test1","LastName":"User","Email":"test@test.com","City":"ahmedabad","State":"sk","Country":"canada","Status":"False","iUserID":"23"},
  {"FirstName":"user","LastName":"user","Email":"u@u.com","City":"ahmedabad","State":"Gujarat","Country":"India","Status":"True","iUserID":"41"},
  {"FirstName":"Ropbert","LastName":"Jones","Email":"Robert@gmail.com","City":"NewYork","State":"gfg","Country":"fgdfgdfg","Status":"True","iUserID":"48"},
  {"FirstName":"hitesh","LastName":"prajapti","Email":"h.prajapati@zzz.com","City":"","State":"","Country":"","Status":"True","iUserID":"78"}
  ]
}
alert(data.result)
delete data.result[3]
alert(data.result)
</script>

हटाएं डेटा को केवल हटा दें, लेकिन 'जगह' अभी भी अपरिभाषित है

मैंने ऐसा किया और यह एक आकर्षण की तरह काम करता है:

data.result.splice(2,1);  

अर्थ: स्थिति 3 पर 1 आइटम हटाएं (क्योंकि सरणी को 0 के रूप में गिना जाता है, फिर नंबर 3 पर आइटम को 2 के रूप में गिना जाता है)


6

मैं spliceJSON ऑब्जेक्ट्स सरणी से किसी ऑब्जेक्ट को निकालने के लिए विधि की सिफारिश करता हूं ।

jQuery(json).each(function (index){
        if(json[index].FirstName == "Test1"){
            json.splice(index,1); // This will remove the object that first name equals to Test1
            return false; // This will stop the execution of jQuery each loop.
        }
});

मैं इसका उपयोग करता हूं क्योंकि जब मैं deleteविधि का उपयोग nullकरता हूं, तो मुझे ऐसा करने के बाद वस्तु मिलती हैJSON.stringify(json)


1
स्प्लिट को स्वीकृत उत्तर होना चाहिए, एक पूर्ण प्रविष्टि के साथ json दस्तावेज़ को हटाएं। मैं इसे हटाना चाहता था - स्प्लिट विल।
एंडी

5

इसके बाद प्रयास करें

var myJSONObject ={"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"};
console.log(myJSONObject);
console.log(myJSONObject.ircEvent);
delete myJSONObject.ircEvent 
delete myJSONObject.regex 
console.log(myJSONObject);

5

सभी उत्तर महान हैं, और यह वही करेगा जो आप इसे भी पूछते हैं, लेकिन मेरा मानना ​​है कि इसे हटाने का सबसे अच्छा तरीका है, और कचरा संग्रहकर्ता के लिए सबसे अच्छा तरीका (यदि आप नोड.जेएस चला रहे हैं) इस तरह है:

var json = { <your_imported_json_here> };
var key = "somekey";
json[key] = null;
delete json[key];

इस तरह से कचरा संग्रहकर्ता node.jsको पता चल जाएगा कि json['somekey']अब इसकी आवश्यकता नहीं है, और इसे हटा देगा।


मैंने इसे इस तरह से करने के बारे में पढ़ा है, लेकिन मुझे यह काम करने के लिए नहीं मिल सकता है। यह अभी भी अशक्त संदर्भों को छोड़ देता है
K20GH


0

यदि हम एक विशेषता को "फर्स्टनाम" कहना चाहते हैं, तो एरे से हम उपर्युक्त बताए गए डिलीट के साथ-साथ मैप फंक्शन का उपयोग कर सकते हैं

   var result= [
       {
           "FirstName": "Test1",
           "LastName":  "User",
       },
       {
           "FirstName": "user",
           "LastName":  "user",
       },
       {
           "FirstName": "Ropbert",
           "LastName":  "Jones",
       },
       {
           "FirstName": "hitesh",
           "LastName":  "prajapti",
       }
   ]

result.map( el=>{
    delete el["FirstName"]
})
console.log("OUT",result)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.