JSON ফরম্যাট ও যাচাই করুন
JSON আরও সহজপাঠ্য করুন, সিনট্যাক্স যাচাই করুন বা সংক্ষিপ্ত সংস্করণ তৈরি করুন। এই নির্দেশিকায় ইন্ডেন্টেশন, কী সাজানো এবং ফল সংরক্ষণ করার পদ্ধতি দেখানো হয়েছে।
দেওয়া নমুনাটি চেষ্টা করুন
order-options.json ডাউনলোড করুন। এটি দুটি পণ্যের একটি কাল্পনিক অর্ডার, যার ফিল্ডের নাম ইংরেজিতে। customer অবজেক্টে নাম ও শহর একসঙ্গে আছে; items অ্যারেতে প্রথমে CARD-02, তারপর BOX-01 আছে। নমুনায় উদ্ধৃতিচিহ্নের মধ্যে লেখা, সংখ্যারূপে পরিমাণ ও দাম, বুলিয়ান true এবং খালি ডেলিভারি নোটের জন্য null আছে। সাজানোর বিকল্পের প্রভাব দেখাতে ফিল্ডগুলো ইচ্ছাকৃতভাবে সাজানো হয়নি।
ধাপে ধাপে
- JSON ফরম্যাটার ও ভ্যালিডেটর খুলুন। দেওয়া order-options.json খুলতে ফাইল ব্যবহার করুন অথবা ফাইলের বিষয়বস্তু আপনার ইনপুট-এ পেস্ট করুন।
- প্রতি স্তরে দুটি স্পেসের জন্য ইন্ডেন্টেশন 2 করুন। প্রথমবার অবজেক্ট কী সাজান নির্বাচন করবেন না।
- ইনপুট প্রক্রিয়া করুন নির্বাচন করুন। ফল দেখানোর আগে টুল JSON-এর সিনট্যাক্স যাচাই করে। ত্রুটি দেখালে লাইন ও কলাম দিয়ে সমস্যাটি খুঁজুন, ইনপুট সংশোধন করুন এবং আবার চেষ্টা করুন।
- ফল পড়ুন। customer অবজেক্ট ও দুটি পণ্য বোঝা সহজ হওয়া উচিত, প্রতি লাইনে একটি ফিল্ড বা তালিকার উপাদান থাকবে। সাজানো বন্ধ থাকলে ফিল্ডগুলো নমুনার ক্রম ধরে রাখে।
- formatted.json সংরক্ষণ করতে ফলাফল ডাউনলোড করুন নির্বাচন করুন। অন্য এডিটরে ফল রাখতে টেক্সট কপি করুন-ও ব্যবহার করতে পারেন।
- ডাউনলোড করা ফাইল টেক্সট এডিটরে খুলে নিচের পরীক্ষাগুলো দিয়ে নমুনার সঙ্গে তুলনা করুন। এরপর ইন্ডেন্টেশন ও সাজানোর অন্য বিকল্প চেষ্টা করুন; প্রতিটি পরিবর্তনের পরে আবার ইনপুট প্রক্রিয়া করুন নির্বাচন করুন।
আগে ও পরে উদাহরণ
এই ছোট উদাহরণগুলোতে order-options.json-এর customer অবজেক্টকে ছোট JSON নথি হিসেবে দেখানো হয়েছে। প্রতিটি সেটিংয়ের আগে ও পরে একই নাম ও শহর তুলনা করুন। শেষে ঐচ্ছিক রেফারেন্স অংশে পুরো অর্ডার দেখা যাবে।
সংক্ষিপ্ত JSON সহজপাঠ্য করুন
ইন্ডেন্টেশন 2 করুন, অবজেক্ট কী সাজান অনির্বাচিত রাখুন এবং ইনপুট প্রক্রিয়া করুন নির্বাচন করুন। ফলে লাইন ব্রেক ও প্রতি স্তরে দুটি স্পেস যোগ হয়, আর ফিল্ডের মূল ক্রম বজায় থাকে।
আগে: সংক্ষিপ্ত ইনপুট
{"customer":{"name":"Zoë","city":"Bergen"}}পরে: দুই স্পেসের ইন্ডেন্টেশন
{
"customer": {
"name": "Zoë",
"city": "Bergen"
}
}অবজেক্টের ভেতরের কী সাজান
ইন্ডেন্টেশন 2 রাখুন, অবজেক্ট কী সাজান নির্বাচন করুন এবং ইনপুট প্রক্রিয়া করুন নির্বাচন করুন। customer-এর ভেতরে এখন city, name-এর আগে আসে। দুটি মানই অপরিবর্তিত থাকে।
আগে: কী-এর মূল ক্রম
{
"customer": {
"name": "Zoë",
"city": "Bergen"
}
}পরে: অবজেক্টের সাজানো কী
{
"customer": {
"city": "Bergen",
"name": "Zoë"
}
}JSON সংক্ষিপ্ত করুন
ইন্ডেন্টেশন-এর অধীনে সংক্ষিপ্ত করুন বেছে নিন, অবজেক্ট কী সাজান অনির্বাচিত রাখুন এবং ইনপুট প্রক্রিয়া করুন নির্বাচন করুন। ফরম্যাটিংয়ের স্পেস ও লাইন ব্রেক বাদ যায়; লেখা ও ফিল্ডের ক্রম অপরিবর্তিত থাকে।
আগে: দুই স্পেসের ইন্ডেন্টেশন
{
"customer": {
"name": "Zoë",
"city": "Bergen"
}
}পরে: সংক্ষিপ্ত করুন
{"customer":{"name":"Zoë","city":"Bergen"}}ইন্ডেন্টেশন বেছে নিন
| বিকল্প | কী করে |
|---|---|
| 2 | প্রতিটি নেস্টিং স্তরে দুটি স্পেস ব্যবহার করে। মূল ধাপগুলোতে এই সেটিং ব্যবহৃত হয়েছে। |
| 4 | প্রতিটি নেস্টিং স্তরে চারটি স্পেস ব্যবহার করে, যাতে ভেতরের অবজেক্ট ও অ্যারে আরও স্পষ্ট হয়। |
| ↹ | প্রতিটি নেস্টিং স্তরে একটি ট্যাব ব্যবহার করে। ট্যাবের দৃশ্যমান প্রস্থ টেক্সট এডিটরের ওপর নির্ভর করে। |
| সংক্ষিপ্ত করুন | ফরম্যাটিংয়ের স্পেস ও লাইন ব্রেক সরিয়ে দেয়। উদ্ধৃতিচিহ্নের মধ্যে লেখার স্পেস সেই লেখার অংশ হিসেবেই থাকে। সংক্ষিপ্ত ফলের জন্য এই বিকল্প বেছে নিয়ে ইনপুট প্রক্রিয়া করুন নির্বাচন করুন। |
ইনপুট বা কোনো বিকল্প পরিবর্তন করলে আগের ফল মুছে যায়। নতুন সেটিং দিয়ে ফল তৈরি করতে আবার ইনপুট প্রক্রিয়া করুন নির্বাচন করুন। টুল প্রতিবার ইনপুট অংশ পড়ে; আগের ফল স্বয়ংক্রিয়ভাবে ইনপুটে ফেরত দেয় না।
অবজেক্টের কী সাজান
প্রতিটি অবজেক্টের ফিল্ডের মূল ক্রম রাখতে অবজেক্ট কী সাজান অনির্বাচিত রাখুন। নির্বাচন করলে পুরো নথিতে বড় ও ছোট হাতের অক্ষরের পার্থক্য রেখে টেক্সটের ক্রম অনুযায়ী কী সাজায়, অ্যারের ভেতরের অবজেক্টও এর অন্তর্ভুক্ত। অ্যারের উপাদানগুলো নিজস্ব মূল ক্রম বজায় রাখে।
- ইন্ডেন্টেশন 2 রাখুন, অবজেক্ট কী সাজান নির্বাচন করুন এবং ইনপুট প্রক্রিয়া করুন নির্বাচন করুন।
- সর্বোচ্চ স্তরের কী এখন customer, deliveryNote, items, order ও paid ক্রমে থাকে। customer-এর ভেতরে city, name-এর আগে আসে। প্রতিটি পণ্যে price, quantity ও sku-এর আগে আসে।
- items অ্যারেতে এখনও প্রথমে CARD-02, তারপর BOX-01 আছে। কী সাজালে পণ্যগুলো sku বা দাম অনুযায়ী সাজানো হয় না।
কপি করুন, ডাউনলোড করুন এবং আবার শুরু করুন
| বিকল্প | কী করে |
|---|---|
| টেক্সট কপি করুন | বর্তমান ফল টেক্সট হিসেবে কপি করে। কপি করার সুবিধা না থাকলে টুল ফল নির্বাচন করে দেয়, যাতে আপনি নিজে কপি করতে পারেন। |
| ফলাফল ডাউনলোড করুন | বর্তমান ফল formatted.json হিসেবে সংরক্ষণ করে। ফরম্যাট করা, সংক্ষিপ্ত ও সাজানো ফলের জন্য একই নাম ব্যবহৃত হয়; একাধিক সংস্করণ রাখতে চাইলে ফাইলের নাম বদলান। |
| ফলাফল প্রিন্ট করুন | ফলের লেখার জন্য ব্রাউজারের প্রিন্ট ডায়ালগ খোলে। |
| উদাহরণ লোড করুন | ইনপুটের বদলে টুলের নিজস্ব উদাহরণ বসিয়ে বর্তমান সেটিং দিয়ে প্রক্রিয়া করে। এই উদাহরণ নির্দেশিকার order-options.json থেকে আলাদা। |
| সব সরান | ইনপুট, নির্বাচিত ফাইল ও ফল মুছে দেয়। ইন্ডেন্টেশন ও সাজানোর নির্বাচন অপরিবর্তিত থাকে। |
ডাউনলোড করা JSON পরীক্ষা করুন
- formatted.json টেক্সট এডিটরে খুলুন। নিশ্চিত করুন যে অর্ডারটি ORD-1042, গ্রাহক Bergen-এর Zoë এবং দুটি পণ্য আছে।
- মান ও তাদের ধরন পরীক্ষা করুন: quantity প্রথমে সংখ্যা 2, তারপর 1; দাম 19.50 ও 5.00 থাকে; paid উদ্ধৃতিচিহ্ন ছাড়া বুলিয়ান true; deliveryNote উদ্ধৃতিচিহ্ন ছাড়া null। উদ্ধৃতিচিহ্নের মধ্যে নাম ও পণ্যের কোড স্ট্রিং হিসেবেই থাকে।
- অবজেক্ট কী সাজান চেষ্টা করার পরে উপরের ফিল্ডের ক্রম পরীক্ষা করুন এবং নিশ্চিত করুন যে items অ্যারেতে CARD-02 এখনও BOX-01-এর আগে আছে।
- সংক্ষিপ্ত করুন ও ইনপুট প্রক্রিয়া করুন চেষ্টা করুন। ফল আবার আপনার ইনপুট-এ পেস্ট করুন, ইন্ডেন্টেশন 2 করুন এবং আবার ইনপুট প্রক্রিয়া করুন নির্বাচন করুন। মূল নমুনার সঙ্গে মান ও পণ্যের ক্রম তুলনা করুন; ফরম্যাটিংয়ের বিকল্পে এগুলো অক্ষুণ্ণ থাকা উচিত।
প্রশ্ন ও সমস্যা সমাধান
টুল কেন অবৈধ JSON দেখায়?
দেখানো লাইন ও কলাম এবং তার ঠিক আগের ফিল্ড পরীক্ষা করুন। কী ও লেখায় ডাবল উদ্ধৃতিচিহ্ন দরকার; ফিল্ডে কমা ও কোলন দরকার; বর্গাকার ও কোঁকড়া বন্ধনী বন্ধ করতে হবে। ইনপুট সংশোধন করে আবার ইনপুট প্রক্রিয়া করুন নির্বাচন করুন। যাচাই শুধু JSON-এর সিনট্যাক্স পরীক্ষা করে, তাই বৈধ ফলেও আপনার অ্যাপের প্রয়োজনীয় ফিল্ড অনুপস্থিত থাকতে পারে।
মন্তব্য বা শেষে কমা ব্যবহার করা যাবে?
মন্তব্য এবং বন্ধ হওয়া বর্গাকার বা কোঁকড়া বন্ধনীর ঠিক আগের কমা সরান। এগুলো JSON-এ বৈধ নয়। ফরম্যাটারের বৈধ ইনপুট দরকার; এটি স্বয়ংক্রিয়ভাবে মেরামত করে না।
একই কী বারবার থাকার সতর্কতার অর্থ কী?
“পুনরাবৃত্ত কী সংরক্ষিত হয়েছে। কিছু পাঠক পুনরাবৃত্ত কী বাদ দেয়।” বার্তার অর্থ একই অবজেক্টে একটি কী একাধিকবার আছে। ফরম্যাটার এই এন্ট্রিগুলো রেখে সতর্ক করে। উৎস দেখুন, কাঙ্ক্ষিত মান বেছে নিন এবং অতিরিক্ত এন্ট্রি সরান; অন্য অ্যাপ হয়তো শুধু একটি রাখবে।
ফাইল কেন খোলে না বা প্রক্রিয়া হয় না?
ইনপুটের সীমা 2 MiB, অর্থাৎ 2,097,152 বাইট। স্থানীয় টেক্সট ফাইল UTF-8 হতে হবে। টুল ডেটাকে অতিরিক্ত জটিল বললে নেস্টিং বা এন্ট্রির সংখ্যা কমান। বড় ইনপুট ছোট, সম্পূর্ণ JSON নথিতে ভাগ করুন; কোনো অবজেক্ট বা অ্যারের মাঝখান থেকে কাটবেন না।
লম্বা সংখ্যা অন্য অ্যাপে কেন বদলে যায়?
নিচের আলাদা নির্ভুলতার নমুনায় 9007199254740993 ও 0.10000000000000001 আছে। এই ফরম্যাটার প্রতিটি ইন্ডেন্টেশন ও সাজানোর বিকল্পে সংখ্যাগুলোর লেখা হুবহু রাখে। exact-numbers.json ফরম্যাট করুন এবং টেক্সট এডিটরে ফলের সঙ্গে exact-numbers-formatted.json তুলনা করুন। ফল আমদানি করা অ্যাপ তবুও সংখ্যা রাউন্ড করতে পারে, তাই প্রয়োজনীয় নির্ভুলতা সমর্থন করে কি না নিশ্চিত করুন। 00123-এর মতো শুরুতে শূন্য থাকা কোড JSON-এ উদ্ধৃতিচিহ্নের মধ্যে স্ট্রিং হতে হবে।
ফরম্যাটিং কি আগে রাউন্ড করা অঙ্ক ফিরিয়ে আনতে পারে?
টুলে লেখা পৌঁছানোর আগে রাউন্ড করা বা মুছে ফেলা অঙ্ক ফরম্যাটিং ফিরিয়ে আনতে পারে না। মূল উৎসে ফিরে সম্পূর্ণ মান আবার রপ্তানি করুন। মানটি পরিমাণের বদলে শনাক্তকারী হলে স্ট্রিং ব্যবহার করলে গ্রহণকারী অ্যাপগুলো অঙ্ক ধরে রাখতে পারে।
ঐচ্ছিক: নমুনা ও রেফারেন্স ফল তুলনা করুন
এই কোড উদাহরণ ও ডাউনলোডগুলো order-options.json থেকে টুলের পৃষ্ঠার একই ফরম্যাটার দিয়ে তৈরি। ফরম্যাট করা ও সংক্ষিপ্ত রেফারেন্সে কী সাজানো বন্ধ; সাজানো রেফারেন্সে দুই স্পেসের ইন্ডেন্টেশন এবং কী সাজানো চালু।
মূল নমুনা
{"order":"ORD-1042", "customer": {"name":"Zoë","city":"Bergen"}, "items":[{"sku":"CARD-02", "quantity":2,"price":19.50},{"sku":"BOX-01","quantity":1, "price":5.00}], "paid":true, "deliveryNote":null}
দুই স্পেস; কী-এর মূল ক্রম
{
"order": "ORD-1042",
"customer": {
"name": "Zoë",
"city": "Bergen"
},
"items": [
{
"sku": "CARD-02",
"quantity": 2,
"price": 19.50
},
{
"sku": "BOX-01",
"quantity": 1,
"price": 5.00
}
],
"paid": true,
"deliveryNote": null
}সংক্ষিপ্ত করুন; কী-এর মূল ক্রম
{"order":"ORD-1042","customer":{"name":"Zoë","city":"Bergen"},"items":[{"sku":"CARD-02","quantity":2,"price":19.50},{"sku":"BOX-01","quantity":1,"price":5.00}],"paid":true,"deliveryNote":null}দুই স্পেস; অবজেক্টের সাজানো কী
{
"customer": {
"city": "Bergen",
"name": "Zoë"
},
"deliveryNote": null,
"items": [
{
"price": 19.50,
"quantity": 2,
"sku": "CARD-02"
},
{
"price": 5.00,
"quantity": 1,
"sku": "BOX-01"
}
],
"order": "ORD-1042",
"paid": true
}| রেফারেন্স ফাইল | সেটিং | বাইট |
|---|---|---|
| order-formatted.json | দুই স্পেস; কী-এর মূল ক্রম | 300 |
| order-minified.json | সংক্ষিপ্ত করুন; কী-এর মূল ক্রম | 193 |
| order-sorted.json | দুই স্পেস; অবজেক্টের সাজানো কী | 300 |
এগুলো প্রকৃত টেক্সট ফল, ইন্টারফেসের স্ক্রিনশট নয়। পর্দার প্রস্থ অনুযায়ী কোড পরের লাইনে দেখা যেতে পারে। রেফারেন্স ফাইলের নামগুলো উদাহরণ আলাদা করে; টুল নিজে প্রতিটি সংস্করণ formatted.json নামে ডাউনলোড করে।