দুটি ডকুমেন্ট যেগুলি একই ডেটা ভিন্ন কী ক্রমে ধরে রাখে সেগুলি সাধারণ টেক্সট ডিফ দিয়ে তুলনা করা অসম্ভব। হাতে লেখা কনফিগারেশন এবং প্রোগ্রাম দ্বারা লেখা কনফিগারেশন প্রায়ই ক্রমে একমত হয় না, এবং দুটিকে একইভাবে সাজানোই তাদের আবার তুলনাযোগ্য করে।
JSON কী সার্টার ব্যবহার করা
একটি ক্রম বাছাই করুন, A থেকে Z বা Z থেকে A, একটি ইন্ডেন্ট প্রস্থ, এবং কী সাজান চাপুন। শুধু অবজেক্ট কীগুলি সরে। একটি অ্যারে ঠিকমতো লেখা থাকে, কারণ অ্যারের ক্রম এর ডেটার অংশ, কীভাবে টাইপ করা হয়েছে তার দুর্ঘটনা নয়, এবং একটি টুল যা অ্যারেও নীরবে পুনর্বিন্যস্ত করে তা ডকুমেন্টের অর্থ পরিবর্তন করবে শুধু পরিষ্কার করার দাবি করে।
সাজানো
{"item10":"a","item2":"b","Zebra":"c","apple":"d","list":[3,1,2]}
ডিফল্টে কীগুলি সঠিক অক্ষর কোড ক্রমে ফিরিয়ে দেয়: Zebra apple-এর আগে
(বড় হাতের অক্ষর ছোট হাতের আগে সাজায়), এবং item10 item2-এর আগে
("1" "2"-এর চেয়ে ছোট অক্ষর)। অ্যারে [3, 1, 2] সম্পূর্ণ অস্পর্শিত
ফিরে আসে।
“সংখ্যা ক্রমানুসারে” বিকল্প
অক্ষর কোড ক্রমই কারণ item10 item2-এর আগে সাজায়: তুলনা
একবারে একটি অক্ষর দেখে এবং কখনো লক্ষ্য করে না যে 10, 2-এর চেয়ে বড়।
“সংখ্যা ক্রমানুসারে” চালু করলে অঙ্কের ধারাকে সংখ্যা হিসাবে পড়ে, তাই
item2 সঠিকভাবে item10-এর আগে আসে। এটি টুলে স্পষ্টভাবে লেখা
ব্রাউজারের লোকেল-সচেতন তুলনার পরিবরতে, কারণ পৃষ্ঠার ভাষা অনুসরণ করা তুলনা
ঠিক একই ফাইলকে হিন্দি পৃষ্ঠায় ইংরেজি পৃষ্ঠার চেয়ে ভিন্নভাবে সাজাবে, এবং
একটি টুল যা ডকুমেন্ট পরিষ্কার করে তাকে একই উত্তর দিতে হয় কে ব্যবহার
করছে তা নির্বিশেষে।
ডুপ্লিকেট কী
একটি ডুপ্লিকেট কী সহ ডকুমেন্ট সাজানোর পর উভয় কপি রাখে, পাশাপাশি।
এই টুলটি JSON.parse-ভিত্তিক পদ্ধতির মতো “সঠিক” কোনটি সিদ্ধান্ত নেয় না
নীরবে শুধু শেষটি রেখে; এটি যা আছে সেটি সাজায় এবং ডুপ্লিকেট সম্পর্কে
সিদ্ধান্ত আপনাকে ছেড়ে দেয়, অথবা JSON যাচাইকারী-কে,
যা এটিকে সতর্কতা হিসাবে চিহ্নিত করবে।
কেন সাজানো আপনার ডেটা পরিবর্তন করে না
সাজানো হোক বা না হোক, মানগুলি, তাদের ধরন এবং তাদের সঠিক টেক্সট অভিন্ন। এটি একটি প্রদর্শন এবং তুলনা সুবিধা, ডকুমেন্টের অর্থের রূপান্তর নয়, তাই JSON ডিফ টুল-এ তুলনা করার আগে ডকুমেন্ট সাজানো নিরাপদ এই চিন্তা না করে যে সাজানোটি নিজেই পার্থক্য তৈরি করেছে।