منسّق JSON Lines

تعمل في المتصفح JSON والبيانات

قسّم مصفوفة JSON إلى مستند JSON واحد في كل سطر، أو اجمع أسطر JSON Lines مجدداً في مصفوفة منسّقة — وهي الصيغة المستخدمة في السجلات وواجهات API المتدفقة وعمليات الاستيراد الجماعي.

الخصوصية: تعمل هذه الأداة بالكامل في متصفحك. لا تغادر بياناتك جهازك أبداً.
جارٍ تحميل الأداة…

ما هو JSON Lines؟

JSON Lines (ويُسمى أيضاً NDJSON) صيغة نصية يكون فيها كل سطر قيمة JSON واحدة كاملة، عادة كائناً، تفصلها أسطر جديدة دون مصفوفة محيطة. ولأن القارئ يستطيع معالجة سطر واحد في كل مرة، تناسب السجلات والتصديرات وواجهات البث حيث كان لا بد من الاحتفاظ بمصفوفة JSON واحدة كاملة في الذاكرة؛ والثمن أن الملف ككل ليس JSON صالحاً وأن كل سطر يجب تحليله على حدة.

اقرأ الدليل: ما هو JSON؟

كيفية استخدام منسّق JSON Lines

  1. الصق إما مصفوفة JSON أو محتوى JSON Lines.
  2. اترك الاتجاه على «اكتشاف تلقائي» (Auto-detect) أو اختر اتجاهاً صراحةً.
  3. انسخ الناتج المحوَّل أو نزّله.

مزايا منسّق JSON Lines

  • تقسيم مصفوفة JSON إلى مستند JSON مضغوط واحد في كل سطر
  • جمع أسطر JSON Lines مجدداً في مصفوفة منسّقة
  • اكتشاف الاتجاه تلقائياً، أو فرضه صراحةً
  • الإبلاغ عن أول سطر غير صالح مع رقمه عند الجمع
  • تخطي الأسطر الفارغة بأمان
  • التنزيل كملف JSONL أو JSON

مثال على منسّق JSON Lines

من مصفوفة إلى JSON Lines

الإدخال:

[{"id":1,"level":"info"},{"id":2,"level":"error"}]

النتيجة:

{"id":1,"level":"info"}
{"id":2,"level":"error"}

الأسئلة الشائعة حول منسّق JSON Lines

ما صيغة JSON Lines / NDJSON؟

صيغة نصية تحتوي على قيمة JSON واحدة بالضبط في كل سطر، مفصولة بأسطر جديدة. وهي مناسبة للتدفق (streaming) وتُستخدم في أدوات شحن السجلات وBigQuery وواجهات Elasticsearch الجماعية والعديد من خطوط أنابيب البيانات.

كيف يحدد الاكتشاف التلقائي الاتجاه؟

إذا كان كل سطر من الأسطر الأولى يُحلَّل كقيمة JSON مستقلة، يُعامل الإدخال كـ JSON Lines ويُجمع في مصفوفة؛ وإلا فيُحلَّل كمستند JSON ويُقسَّم إلى أسطر.

ماذا لو كانت مصفوفتي تحتوي على مصفوفات أو كائنات متداخلة؟

يُكتب كل عنصر في المستوى الأعلى في سطر مستقل كـ JSON مضغوط، بغضّ النظر عن عمق تداخله.

هل تسبب الأسطر الفارغة مشكلة؟

تُتخطى الأسطر الفارغة عند الجمع. وعند التقسيم لا يحتوي الناتج أبداً على أسطر فارغة، لذا فهو آمن لمستهلكي NDJSON الصارمين.

المراجع

  • JSON Linesjsonlines.orgاتفاقية JSON Lines: قيمة JSON كاملة في كل سطر، بترميز UTF-8 وفواصل "\n" وامتداد ‎.jsonl.
  • RFC 8259: The JavaScript Object Notation (JSON) Data Interchange FormatIETF · 2017قواعد JSON: الكائنات والمصفوفات والنصوص والأرقام والقيم الثلاث الثابتة، وUTF-8 كترميز للتبادل.