জসন উপাদান সরান


111

আমি জেএসএন থেকে জেএসএন উপাদান বা একটি সম্পূর্ণ সারিটি সরাতে চাই।

আমি JSON স্ট্রিং নিম্নলিখিত:

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

1
আমি মনে করি আপনি এখনও কিছু জসন ত্রুটি পেয়েছেন
সন্তোষ লিংখা


1
আমি প্রশ্নের উত্তর দিয়েছি, আপনি এটি একবার দেখতে চাইবেন। আমি উত্তরটি যুক্ত করেছিলাম কারণ আবর্জনা সংগ্রহ কীভাবে কাজ করে তা অনেকে বিবেচনা করে না।
গেমস ব্রেনিয়াক

@ ক্রিসএফ - ডুপ্লিকেট নয় যেহেতু মোছার ফলে অ্যারেতে একটি "
অপরিজ্ঞাত

উত্তর:


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

আপনি অ্যারে থেকে উপাদানগুলি সরাতে স্প্লাইস ব্যবহার করতে পারেন ।


5
সর্বদা সবচেয়ে খারাপ উত্তর কেন শীর্ষে থাকে? এটি সম্ভবত প্রতিনিধি পয়েন্ট হতে পারে? আমি খোজ করেছিলাম. আমি পেয়েছি। আপনার সঠিক উত্তর ছিল।
এরিক লেরয়

1
আমি এই উত্তর পাই না। পরীক্ষার তথ্যগুলিতে "ফু" কোথায়?
টনি

9
পরীক্ষার তথ্যগুলিতে ফুও কোথায়? ঠিক আছে, প্রথম লাইনটি আসলে সিউডোকোড। Json = {... of এর পরিবর্তে এটি json = {foo: 'value'}
aharris88

5
json [key] মুছুন; ? প্রদত্ত উদাহরণে কয়টি "ফার্স্টনাম"? ভুল উত্তর.
EGurelli

3
মুছুন ব্যবহার করে অ্যারেতে একটি নাল উপাদান ছেড়ে যাবে
মাইকেল

21

আপনার জেএসএনে ট্রেলিং কমা নেই

আপডেট : আপনাকে অ্যারে থেকে স্পাইস ব্যবহার করতে হবে এবং যদি আপনি বস্তুর অ্যারে থেকে আইটেমগুলি সরাতে চান তবে মুছবেন না

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. জেএসএন-তে ত্রুটিগুলি ঠিক করুন: http://jsonlint.com/
  2. জেএসনকে পার্স করুন (যেহেতু আপনি প্রশ্নটি জাভাস্ক্রিপ্টের সাহায্যে ট্যাগ করেছেন, json2.js ব্যবহার করুন )
  3. আপনার তৈরি করা বস্তু থেকে সম্পত্তি মুছুন
  4. জেএসএনে ফিরে বস্তুকে স্ট্রাইফাই করুন।

দ্রত - আপনি উত্তর দিয়েছিলেন যখন আমি কমাগুলি অপসারণ
করছিলাম

6

@ এমপ্লুংজান দ্বারা বর্ণিত হিসাবে, আমি যদিও এটি সঠিক ছিল। তারপরে এখনই আমি আপ রেট বোতামটি ক্লিক করি। তবে এটি অনুসরণ করে, অবশেষে আমি একটি ত্রুটি পেয়েছি।

<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>

মুছে ফেলুন মাত্র ডেটা সরিয়ে হয়, কিন্তু 'জায়গা' এখনও আছে হিসাবে undefined

আমি এটি করেছি এবং এটি একটি কবজির মতো কাজ করে:

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
স্প্লাইস গ্রহণযোগ্য উত্তর হওয়া উচিত, মুছে ফেলা জেসন ডকুমেন্টকে একটি ন্যূনুয়াল সন্নিবেশের সাথে প্রতিস্থাপন করে .... আমি এটি মুছতে মুছতে চাইছিলাম - স্প্লাইস উইল।
অ্যান্ডি

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)
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.