CSV ⇄ JSON

الصق أي صيغة — تظهر الأخرى أثناء الكتابة، في الاتجاهين.

كيف تستخدمه

  1. الصق CSV (أو نصاً مفصولاً بجدولة أو بفاصلة منقوطة) أو مصفوفة JSON في الصندوق — تُرسم النتيجة أثناء الكتابة، ولا يوجد زر للضغط. يُكتشف الاتجاه من أول حرف ويُعرض أعلى النتيجة لتتحقق منه.
  2. إن كان الاتجاه خاطئاً فاختر CSV → JSON أو JSON → CSV. وإن تجمّع كل شيء في عمود واحد فبدّل الفاصل من «تلقائي» إلى الفاصل الصحيح. أطفئ «الصف الأول عناوين الأعمدة» إن كان الملف يبدأ بالبيانات مباشرة، فتحصل على مصفوفة من مصفوفات بدل الكائنات.
  3. انسخ النتيجة أو نزّلها: كلتاهما تستخدم النص نفسه الظاهر على الشاشة، واسم الملف data.json أو data.csv. وزر «إدراج مثال» يملأ مثالاً يناسب الاتجاه الحالي.

مثال

المدخل (CSV)

رقم_الطلب,العميل,الملاحظة,الرمز_البريدي,المبلغ
1001,"خالد, أحمد",طلب استرداد,11511,89.90
1002,سارة,,22132,42.00

المخرجات (JSON)

[
  {
    "رقم_الطلب": 1001,
    "العميل": "خالد, أحمد",
    "الملاحظة": "طلب استرداد",
    "الرمز_البريدي": 11511,
    "المبلغ": 89.9
  },
  {
    "رقم_الطلب": 1002,
    "العميل": "سارة",
    "الملاحظة": "",
    "الرمز_البريدي": 22132,
    "المبلغ": 42
  }
]

ثلاثة أمور تستحق التحقق: مفاتيح JSON هي أسماء الأعمدة العربية كما هي، ولا تتغير بتغير لغة الواجهة؛ والفاصلة داخل «خالد, أحمد» وقعت بين علامتي اقتباس فبقيت داخل القيمة ولم تقسم الصف؛ و«89.90» خرجت 89.9 لأن أرقام JSON لا تحتفظ بالصفر في نهاية الكسر — أطفئ «التعرّف على الأرقام» ليبقى النص كما هو.

القواعد والحدود ومسائل معروفة

  • لا رفع ملفات ولا سحب وإفلات ولا جلب من رابط: النص يُلصق فقط. منطقة الإفلات تبتلع الارتفاع الذي تحتاجه النتيجة، ودعم الملفات يعني معالجة ترميزات غير UTF-8 — وهذا ما يفعله «عارض CSV» في الموقع (GB18030 وBig5 وWindows-1256)، فافتح الملف هناك ثم انسخ النص.
  • الحد الأقصى للمدخل 1,000,000 حرف؛ وفوق 200,000 حرف تتحدث النتيجة بعد توقفك عن الكتابة مع تنبيه صريح. وفوق الحد الصلب يظهر خطأ واضح، ولا يُقتطع المدخل بصمت.
  • التعرّف على الأنواع يجري خلية بخلية وبتحفّظ: تُحوَّل فقط true / false / null (بأحرف صغيرة) والأرقام المطابقة تماماً لصيغة JSON. الأعداد الصحيحة ذات الصفر البادئ (00501) والأعداد من 16 خانة فأكثر (المعرّفات الطويلة) تبقى نصوصاً، والخلية الفارغة تبقى "" ولا تصير null.
  • أرقام JSON لا تحتفظ بالأصفار في نهاية الكسر، لذا تصير 89.90 إلى 89.9 و42.00 إلى 42. أطفئ «التعرّف على الأرقام» ليبقى كل حرف كما كتبته.
  • عدد الأعمدة هو أعرض صف، فلا يُفقد أي حقل: الصفوف القصيرة تُكمَّل بنصوص فارغة، والحقول الزائدة تحصل على اسم تلقائي، والصفوف المخالفة للصف الأول تُذكر بأرقامها.
  • أسماء الأعمدة المكررة تُعاد تسميتها بلاحقة _2 و_3 … بدل أن تتغلب على بعضها — التغلب يُفقد عموداً كاملاً بصمت. والخلايا الفارغة أو المفقودة في صف العناوين تُسمّى column_N. وهذه الأسماء رموز آلية متطابقة في اللغات الثلاث.
  • JSON → CSV يقبل مصفوفة كائنات (الحالة الأساسية)، ومصفوفة من مصفوفات (أعمدة موضعية)، وكائناً واحداً، ومصفوفة قيم بسيطة (عمود value). أي شكل آخر — قيمة في المستوى الأعلى، أو مصفوفة تخلط كائنات بقيم أخرى — يُرفض مع ذكر السطر والعمود، ولا يُخمَّن.
  • الكائنات المتداخلة تُسطَّح افتراضياً إلى مسارات بنقطة (العنوان.الحي)؛ والمصفوفات لا تُسطَّح أبداً بل تُكتب JSON مضغوطاً داخل الخلية. أطفئ التسطيح ليبقى الكائن المتداخل JSON داخل الخلية أيضاً. وnull يصير خلية فارغة.
  • JSON يُحلَّل بصرامة: بلا تعليقات ولا فواصل زائدة ولا علامات اقتباس مفردة ولا أحرف تحكم غير مهرّبة، والتداخل حتى 64 مستوى. وصيغة كائن في كل سطر (JSON Lines) غير مقبولة — ضع الكائنات داخل مصفوفة أولاً.
  • CSV هو الجانب المتسامح: علامة الاقتباس غير المغلقة تُقرأ حتى نهاية النص ويُذكر رقم صفها، والأسطر الفارغة تُتجاوز وتُحصى، والصفوف ذات عدد الحقول المختلف تُذكر. ولا تُنتج أخطاء صلبة إلا جهة JSON.
  • ملف CSV الناتج يُكتب بنهايات أسطر CRLF وبلا علامة ترتيب البايت، وهو مطابق تماماً لما تنسخه. وإن ظهرت رموز مشوّهة عند فتح CSV عربي في Excel بالنقر المزدوج، فاستورده عبر «بيانات → من نص/CSV» واختر UTF-8.
  • خارج النطاق: .xlsx والأرشيفات وملفات متعددة وJSONL وتصدير YAML/XML/SQL/Excel والترتيب والتصفية واختيار الأعمدة وإزالة التكرار — يتولاها «عارض CSV» و«محوّل صيغ الإعدادات». لا رفع ولا تخزين ولا كتابة في الرابط.

ما تحتاجه عادةً بعد أن تصبح البيانات بالصيغة الأخرى.