NDJSON প্রতি লাইনে একটি JSON মান, এবং এটিই সমগ্র ফরম্যাট। এটি বিদ্যমান কারণ একটি রিডার একটি লাইন হ্যান্ডেল করতে পারে এবং সেটি ভুলে যেতে পারে, যার ফলে একটি লগ ফাইল বা বড় এক্সপোর্ট স্ট্রিমযোগ্য হয় যখন একটি বিশাল অ্যারে তা নয়: একই সাথে সমগ্র নথি মেমরিতে রাখতে কিছু ই লাগে না।
JSON to NDJSON কনভার্টার ব্যবহার করা
একটি দিক বেছে নিন এবং Convert চাপুন। NDJSON-এ যেতে একটি অ্যারে লাগে, কারণ এটি JSON-এর সেই আকৃতি যা মানের একটি ক্রম; প্রতি লাইনে যেকোনো ধরনের উপাদান অনুমোদিত, শুধু অবজেক্ট নয়।
[{"id": 12345678901234567890}, "plain string", 42, null]
হয়ে যায়:
{"id":12345678901234567890}
"plain string"
42
null
প্রতিটি উপাদান তার নিজের লাইন পায়, মিনিফাইড, এবং কুড়ি অংকের
id প্রতিটি অংক ধরে রাখে কারণ দুই দিকই JSON.parse-এর পরিবর্তে
টোকেন স্ট্রিম দিয়ে যায়।
ফাঁকা লাইন
সম্পূর্ণ ফাঁকা লাইন ত্রুটি হিসাবে না ভেবে বাদ দেওয়া হয়। প্রায় সব প্রকৃত NDJSON ফাইল শেষে একটি ট্রেইলিং নিউলাইন দিয়ে শেষ হয়, যা কঠোরভাবে একটি শেষ ফাঁকা লাইনের মানে, তাই একটিতে ব্যর্থ হওয়া প্রায় সেই সব ফাইল প্রত্যাখ্যান করবে যেগুলি মানুষ সত্যিই রাখে। টুল রিপোর্ট করে কতটি বাদ দেওয়া হয়েছে সাথে কতটি রেকর্ড লেখা হয়েছে, কারণ একটি ফাইল যা অর্ধেক ফাঁকা বের হয়েছে জানা যোগ্য।
পুনরায় পড়া, এবং ভাঙা লাইন কী বলে
NDJSON-কে JSON-এ রূপান্তর প্রতিটি লাইন আলাদাভাবে যাচাই করে এবং আপনার ফাইলে প্রকৃত যে লাইন নম্বর আছে তা দিয়ে ব্যর্থতা রিপোর্ট করে। দেওয়া
{"a":1}
{"a":2}
{"a":}
{"a":4}
ব্যর্থতা লাইন ৩-এ রিপোর্ট হয়, লাইন ১-এ বা ফাইলের শেষে নয়, তাই আপনি হাজার লাইনের ফাইলে ভাঙা রেকর্ডে সরাসরি যেতে পারেন গণনা না করে।
প্রতি লাইনে একটি মান, কঠোরভাবে
একটি একক লাইনে দুটি JSON মান NDJSON নয়, যদিও একটি নরম পার্সার এটিকে দুর্ঘটনায় গ্রহণ করতে পারে। এই টূল এটি প্রত্যাখ্যান করে, কারণ এটিকে চুপচাপে গ্রহণ করার মানে হবে যে প্রকৃত স্পেসিফিকেশন দিয়ে তৈরি একটি ডাউনস্ট্রিম রিডার এই টূলের লেখা সাথে একমত নয়। যদি আপনার প্রতিটি রেকর্ড পাঠযোগ্যভাবে ইন্ডেন্টেড হয়, তাহলে নিয়মিত অ্যারেতে ফিরে রূপান্তরের পর ফলাফলে JSON ফরম্যাটার ব্যবহার করুন; NDJSON লাইন ইচ্ছাকৃতভাবে ইন্ডেন্ট ছাড়াই থাকে, কারণ মানের ভিতরে একটি লাইন ব্রেক রেকর্ড শেষ করে দেবে।