DevToolPal
ع

محوّل JSON Lines إلى JSON

حوّل JSON Lines ‏(JSONL وNDJSON) إلى مصفوفة JSON، وأعد مصفوفة JSON إلى JSON Lines، مع أخطاء مرقّمة بالسطر.

يعمل محليًا، دون أي رفع

الخيارات

الاتجاه
المسافة البادئة

الإدخال

0 حرف · 0 B

المخرجات

0 حرف · 0 B

ما وظيفته

يخزّن JSON Lines (ويُسمى أيضًا JSONL أو NDJSON) قيمة JSON واحدة في كل سطر. وهو التنسيق المفضّل للسجلات وتصدير البيانات وواجهات API المتدفقة والتحميل المجمّع في BigQuery وElasticsearch ومجموعات بيانات تعلّم الآلة مثل ملفات الضبط الدقيق في OpenAI، لأن البرنامج يستطيع قراءة السجلات أو إلحاقها واحدًا تلو الآخر دون تحميل الملف كله.

لكن أدوات كثيرة تتوقع مصفوفة JSON واحدة. يحوّل هذا المحوّل JSON Lines إلى مصفوفة JSON منسّقة، ويعيد مصفوفة JSON إلى JSON Lines بسجل مضغوط واحد في كل سطر.

طريقة الاستخدام

  1. اختر الاتجاه: JSON Lines → JSON أو JSON → JSON Lines.
  2. الصق بياناتك، أو ارفع ملف .jsonl أو .ndjson أو .json، أو انقر مثال.
  3. لمخرجات JSON اختر مسافة بادئة من 2 أو 4، أو مضغوط لسطر واحد.
  4. انسخ النتيجة أو نزّلها، أو استخدم استخدام كمدخل لتحويلها عكسيًا.

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

مثال

هذه الأسطر الثلاثة من JSON Lines:

{"id": 1, "event": "signup"}
{"id": 2, "event": "login"}
{"id": 3, "event": "logout"}

تصبح مصفوفة JSON هذه:

[
  {
    "id": 1,
    "event": "signup"
  },
  {
    "id": 2,
    "event": "login"
  },
  {
    "id": 3,
    "event": "logout"
  }
]

وفي الاتجاه المعاكس يُكتب كل عنصر من المصفوفة في سطر واحد دون مسافات، وينتهي الملف بسطر جديد.

متى تستخدم كلًّا منهما

استخدم JSON Lines حين تُنتَج السجلات أو تُستهلك واحدًا تلو الآخر: الإلحاق بالسجلات، وبث النتائج، وتقسيم مجموعة بيانات كبيرة على عدة عمّال، أو المعالجة بأدوات تعمل سطرًا بسطر مثل grep وhead وwc -l. واستخدم مصفوفة JSON حين يحتاج البرنامج إلى المجموعة كاملة دفعة واحدة، مثل ملف إعداد أو بيانات اختبار أو جسم استجابة لنقطة نهاية REST.

الأسئلة الشائعة

› ما الفرق بين JSONL وNDJSON وJSON Lines؟

إنها أسماء للتنسيق نفسه: قيمة JSON كاملة واحدة في كل سطر، تفصل بينها محارف السطر الجديد. لا يختلف JSON Lines ‏(.jsonl) عن JSON المفصول بأسطر جديدة ‏(.ndjson) إلا في الاسم وامتداد الملف.

› هل الأسطر الفارغة مسموحة؟

تُتخطى الأسطر الفارغة والسطر الجديد الأخير عند القراءة. وتُعالَج أيضًا نهايات أسطر Windows ‏(CRLF) وعلامة BOM في UTF-8.

› ملفي JSON منسَّق وكائن واحد يمتد على عدة أسطر. لماذا يفشل؟

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

› هل يغيّر التحويل الأرقام أو ترتيب المفاتيح؟

لا. تبقى القيم وترتيب المفاتيح كما هي، ولا تتغير إلا المسافات. قد تفقد الأعداد الصحيحة الكبيرة جدًا خارج النطاق الآمن في JavaScript (نحو 9 كوادريليون) شيئًا من دقتها، كما في أي أداة JSON تعمل في المتصفح.