মূল বিষয়বস্তুতে যান
CuteJSON
↑↓ নেভিগেট Enter নির্বাচন Esc বন্ধ

দুটি JSON ডকুমেন্টকে তাদের মান দিয়ে তুলনা করুন, তাদের চেহারা দিয়ে নয়

প্রকাশিত 2 মিনিট পড়ুন Akash Kinkar Pandey দ্বারা

JSON-এ একটি পাঠ diff সঠিকের তুলনায় ভুল জিনিস বেশি বার রিপোর্ট করে। একটি ফাইল পুনরায় সাজান, বা একটি সম্পত্তিকে নিচ থেকে উপরে সরান, এবং একটি লাইন-ভিত্তিক diff ডজন ডজন পরিবর্তিত লাইন হিসাবে জ্বলে যদিও তথ্য একই। আপনি প্রকৃতভাবে জানতে চান মান পরিবর্তন হয়েছে কিনা, বাইট পরিবর্তন হয়েছে কিনা।

JSON diff সরঞ্জাম ব্যবহার করা

মূল ডকুমেন্ট আগে পেস্ট করুন এবং পরিবর্তিত ডকুমেন্ট পরে, তারপর তুলনা করুন চাপুন। ফলাফলে প্রতিটি পার্থক্য মানের পথ এবং পরিবর্তনের উভয় পাশ বহন করে, তাই আপনি “$.b ‘x’ থেকে ‘y’ তে পরিবর্তিত” পড়ছেন প্লাস ও মাইনাস চিহ্ন গণনা করার বদলে।

তুলনা করুন

{"a":1,"b":"x","c":true,"nested":{"n":1.0}}

বনাম

{"b":"y","c":true,"d":"new","nested":{"n":1}}

ঠিক তিনটি পার্থক্য রিপোর্ট করে: $.a সরানো হয়েছে, $.b "x" থেকে "y" তে পরিবর্তিত, এবং $.d যোগ করা হয়েছে। আর কিছু নয়। $.c একই এবং দেখা যায় না। $.nested.nও দেখা যায় না, কারণ 1.0 এবং 1 একই সংখ্যার মানে।

অবজেক্ট এবং অ্যারে ইচ্ছাকৃতভাবে ভিন্নভাবে কিভাবে তুলনা করা হয়

অবজেক্ট অসংগঠিত হিসাবে আচরণ করা হয়, কারণ JSON স্পেসিফিকেশন এটিকেই বলে যে এরা: কোনো নির্ধারিত ক্রম ছাড়া নাম ও মানের জোড়ার একটি সেট। একটি অবজেক্টের কী পুনর্বিন্যাস করা এখানে পরিবর্তন নয়, এবং একটি diff সরঞ্জাম যা এটিকে হিসাবে রিপোর্ট করে সেটি ডেটা নয়, ফরম্যাটিং সম্পর্কে রিপোর্ট করছে।

অ্যারে অবস্থান দিয়ে তুলনা করা হয়, কারণ এটি উপলব্ধ একমাত্র সৎ পাঠ। সরঞ্জাম জানতে পারে না আপনি একটি তালিকার মাঝখানে একটি উপাদান সন্নিবেশ করেছেন নাকি এর পরে প্রতিটি উপাদান পুনরায় লিখেছেন, তাই এটি অনুমান করে না। একটি লম্বা অ্যারের শুরুর কাছে একটি আইটম সন্নিবেশ করলে অনেক অবস্থানগত পরিবর্তন দেখা যাবে, যা সঠিক যদিও প্রথমবারে অবাক করার মতো মনে হয়।

সমান কী গণনা করা হয়

1 এবং 1.0 একই মান, এবং একটি স্ট্রিংয়ে একটি এস্কেপের দুটি ভিন্ন বানান একই স্ট্রিং। একমাত্র জায়গা যেখানে এটি কঠোর হয় লম্বা পূর্ণসংখ্যা: দুটি কুড়ি অঙ্কের সংখ্যাকে সমান বলার আগে অঙ্ক দর অঙ্ক মিলতে হয়, কারণ একটি JavaScript double এদের অদ্বিতীয়ভাবে প্রতিনিধিত্ব করতে পারে না এবং একটি diff যি চুপচাপ দুটি ভিন্ন লম্বা ID-কে একই সংখ্যা মনে করে সেটি সক্রিয়ভাবে ভুল হবে। তিনটি নিয়ম পৃষ্ঠে ঘোষিত, কারণ একটি diff যা চুপচাপ সিদ্ধান্ত নেয় সেটি একটি যেটিতে আপনি কার্যকর করতে পারেন না।

পাশ স্যুপ করুন

যদি আপনি ডকুমেন্ট ভুল ক্রমে পেস্ট করেন, পাশ স্যুপ কিছুও না পুনরায় টাইপ করে তুলনাকে ঘুরিয়ে দেয়, যা যুক্তি বা অপসারণ কোন পাশের বিরুদ্ধে রিপোর্ট করা হয় তাও পরিবর্তন করে।

সব পোস্টে ফিরুন