JSON Toolkit

null নাকি ফিল্ড বাদ

সংক্ষেপে: `null` বলে ফিল্ড আছে কিন্তু মান নেই; বাদ দেওয়া বলে ফিল্ডটাই নেই। PATCH বডি, কনফিগ মার্জ ও ফর্ম প্রিফিল — এখানেই পার্থক্যটা কামড়ায়।

মধ্যবর্তী~3 মিনিট পড়াপ্রকাশ 2026-10-30আপডেট 2026-10-30
null ও অনুপস্থিত ফিল্ডের সেমান্টিক পার্থক্য

মূল কথা: ভোক্তাকে "মুছে ফেলা" ও "অস্পর্শিত" আলাদা করতে হলে null পাঠান — PATCH বডিতে অনুপস্থিতি ফিল্ড অক্ষত রাখে আর স্পষ্ট null তা মুছে — আর প্রতি ফিল্ডে এক প্রথা রাখুন যাতে রেসপন্স ও কনফিগ মার্জ স্থিতিশীল থাকে।

পার্থক্য

{ "nickname": null }

উপস্থিত, খালি। ভোক্তা জানে ফিল্ড স্পষ্টভাবে মুছে ফেলা হয়েছে।

{ }

অনুপস্থিত। ভোক্তা "কখনো সেট হয়নি" আর "সমর্থিত নয়" আলাদা করতে পারে না।

JavaScript-এ পার্থক্য বাস্তব:

'nickname' in obj          // false — absent
obj.nickname === null      // true  — present and null
obj.nickname === undefined // true  — both cases

কোথায় গুরুত্বপূর্ণ

PATCH বডি। {"nickname": null} nickname মুছে। {} কিছুই বদলায় না। হ্যান্ডলার "null" ও "অনুপস্থিত" একই ধরলে ব্যবহারকারী কখনো ফিল্ড মুছতে পারে না — কেবল খালি স্ট্রিং সেট করতে পারে, যা আলাদা জিনিস।

মান নয়, কি-উপস্থিতি দিয়ে বাস্তবায়ন করুন:

if (Object.hasOwn(patch, 'nickname')) {
  target.nickname = patch.nickname;   // null allowed
}

কনফিগ মার্জ। বাদ দেওয়া ডিফল্ট উত্তরাধিকার পায়; null স্পষ্টভাবে নিষ্ক্রিয় করে। Helm ও Kubernetes values ঠিক এভাবেই আচরণ করে।

ফর্ম প্রিফিল। null খালি দেখায়, অনুপস্থিত ফিল্ডও খালি দেখায়, কিন্তু জমা ভিন্ন: মান ছিল, এখন মুছে → null পাঠান; কখনো ভরা হয়নি → বাদ দিন। পার্থক্য না থাকলে মুছে ফেলা আর অস্পর্শিত একই দেখায়।

প্রথা

পরিস্থিতি প্রথা
রেসপন্স বডি null রাখুন; স্থিতিশীল আকৃতি, সরল টাইপ
PATCH রিকোয়েস্ট null মুছে, অনুপস্থিতি রাখে
PUT (পূর্ণ প্রতিস্থাপন) অনুপস্থিতি মানে মুছে ফেলা — পুরো ডকুমেন্ট প্রতিস্থাপিত
কনফিগ মার্জ বাদ = ডিফল্ট, null = নিষ্ক্রিয়
ডেটাবেস অজানা বা প্রযোজ্য নয় বোঝাতে null; পরিচিত-খালি বোঝাতে ''

রেসপন্সের আকৃতি স্থিতিশীল রাখুন। তালিকায় কিছু আইটেমে avatar আছে আর কিছুতে নেই হলে প্রতিটি কল সাইটে 'avatar' in item চেক করতে হয়। avatar: null ভোগ করা সহজ।

যা করা উচিত নয়

null-এর জন্য "" ব্যবহার নয়। খালি nickname আর অনির্ধারিত nickname বেশিরভাগ ডোমেইনে আলাদা অবস্থা।

Sentinel হিসেবে 0 বা -1 নয়। শূন্য বৈধ সংখ্যা, আর sentinel আপনার প্রতিটি গড় গণনা নষ্ট করে।

এন্ডপয়েন্ট অনুযায়ী প্রথা মেশানো নয়। দুই প্রথা মানে প্রতিটি ক্লায়েন্টে দুই কোড পথ।

সাধারণ প্রশ্ন

null ও বাদ দেওয়া ফিল্ডের মধ্যে কী ঠিক করে?

ভোক্তাকে "স্পষ্টভাবে মুছে ফেলা" ও "কখনো সেট হয়নি" আলাদা করতে হবে কি না জিজ্ঞাসা করুন। PATCH বডিতে করতে হবে, তাই null মুছে আর অনুপস্থিতি রাখে; রেসপন্সে null রাখলে আকৃতি স্থিতিশীল ও ক্লায়েন্ট টাইপ সরল হয়।

PATCH এন্ডপয়েন্ট মুছে ফেলা আর অক্ষত রাখা কীভাবে আলাদা করে?

মান নয়, কি-উপস্থিতি দেখুন: Object.hasOwn(patch, 'nickname') বলে ফিল্ড পাঠানো হয়েছে, কেবল তারপর অ্যাসাইন করুন, null-সহ। হ্যান্ডলার null ও অনুপস্থিতিকে একই ধরলে ব্যবহারকারী কখনো ফিল্ড মুছতে পারে না, কেবল খালি স্ট্রিংয়ে ফিরতে পারে।

রেসপন্স বডি null রাখা উচিত কেন?

স্থিতিশীল আকৃতি মানে ক্লায়েন্টকে প্রতিটি ঐচ্ছিক কি-এর জন্য 'avatar' in item চেক করতে হয় না। তালিকার কিছু আইটেমে avatar থাকলে আর কিছুতে বাদ দেওয়া হলে সেই চেক প্রতিটি কল সাইটে পুনরাবৃত্তি হয় আর ভুল করা সহজ।

আরও পড়ুন

সংশ্লিষ্ট টুল

সম্পর্কিত নিবন্ধ

JSON API ডেটা চুক্তি নকশার মূল বিষয়

প্রকাশের পর বদলানো খুব কঠিন এমন ছয়টি জিনিস: রেসপন্স এনভেলপ, এরর ফরম্যাট, পেজিনেশনের আকৃতি, ID ও সময়ের উপস্থাপন, null বনাম অনুপস্থিতের সেমান্টিক্স, আর সংস্করণ বিবর্তন।

মধ্যবর্তী~13 মিনিট পড়াআপডেট 2026-10-30

JSON Pointer, Patch ও Merge Patch

তিনটি ছোট স্পেসিফিকেশন মিলে একটি পরিবর্তন প্রোটোকল: Pointer লোকেট করে, Patch সুনির্দিষ্টভাবে সম্পাদনা করে, Merge Patch আংশিক মার্জ করে। ভুল বাছাই অ্যারে ও সমবর্তীতায় ক্ষতি করে।

মধ্যবর্তী~12 মিনিট পড়াআপডেট 2026-10-30

টুল ব্যবহার FAQ: ডেটা, ফাইল ও এক্সপোর্ট

ডেটা আপলোড হয় কি না, কত বড় ফাইল চলে, কিছু লোকালি সংরক্ষিত হয় কি না, অক্ষর কেন এস্কেপ হয়: একটি অনলাইন JSON টুলের প্রকৃত সীমানা ব্যাখ্যা করা দশটি প্রশ্ন।

শিক্ষানবিশ~10 মিনিট পড়াআপডেট 2026-10-30