تخطي إلى المحتوى

محول JSON ↔ CSV

محول JSON ↔ CSV

تحويل ثنائي الاتجاه بين CSV/TSV و JSON مع الكشف التلقائي عن الفاصل وتعيين صف الرأس وإزالة المسافات وتخطي الأسطر الفارغة. مفيد لاستيراد/تصدير البيانات ومعالجة جداول البيانات وإعداد حمولات API.

محول JSON ↔ CSV

🚀 بداية سريعة

  • الصق أو أدخل بيانات CSV/TSV في محرر CSV على اليمين، وسيتم مزامنة JSON على اليسار تلقائيًا.
  • يمكنك أيضًا إدخال JSON في المحرر الأيسر، وسيتم تحديث CSV على اليمين تلقائيًا.
  • الفاصل مضبوط افتراضيًا على «تلقائي». تفحص الأداة السطر الأول وتتعرف تلقائيًا على الفاصلة أو علامة التبويب أو الفاصلة المنقوطة أو الخط العمودي (|).
  • عند تفعيل «استخدام صف الرأس»، يُستخدم الصف الأول من CSV كمفاتيح لكائنات JSON. وعند تعطيله يكون الناتج مصفوفة ثنائية الأبعاد.
  • استخدم «تشذيب الحقول» و«تخطي الأسطر الفارغة» لتنظيف بيانات CSV غير المنسقة بسرعة.
  • يمكن تنزيل كل محرر بشكل مستقل: جهة JSON تُنزِّل ملف ‎.json، وجهة CSV تُنزِّل ‎.csv أو ‎.tsv حسب الفاصل الحالي.

📌 سيناريوهات شائعة

  • تحويل Excel إلى JSON: انسخ نطاق الخلايا من Excel (مفصولًا بعلامات تبويب) والصقه في جهة CSV لتحويله مباشرة إلى مصفوفة كائنات JSON.
  • تحويل استجابة API إلى جدول: حوّل استجابات JSON إلى CSV لتحليلها في Excel أو Google Sheets.
  • التحضير لاستيراد قاعدة البيانات: حوّل بيانات CSV إلى JSON لتسهيل الاستيراد الدفعي عبر API.
  • تحليل السجلات: حوّل سجلات CSV إلى JSON لإجراء استعلامات مهيكلة بأدوات مثل jq.
  • ترحيل الإعدادات: بدّل بين جداول المطابقة بصيغة CSV وملفات الإعداد بصيغة JSON.
  • تنظيف البيانات: استخدم تشذيب الحقول وتخطي الأسطر الفارغة لتنظيف البيانات المصدّرة من الأنظمة الخارجية بسرعة.

🧭 نصائح الاستخدام

  • البيانات المنسوخة من Excel تكون غالبًا مفصولة بعلامات تبويب، وعادةً يكتشفها الوضع التلقائي بشكل صحيح. عند الخطأ، اختر الفاصل يدويًا.
  • عند تفعيل «استخدام صف الرأس»، لن يُحسب الصف الأول ضمن البيانات بل كأسماء أعمدة. إذا كان CSV بلا عناوين، عطّل هذا الخيار.
  • إذا وُجدت أسماء أعمدة مكررة في العناوين، تضيف الأداة لاحقة تلقائيًا (مثل name وname_2) لضمان تفرد مفاتيح JSON.
  • تحويل JSON → CSV مناسب أكثر للمصفوفات المسطحة من الكائنات. الكائنات أو المصفوفات المتداخلة تُسلسَل كسلاسل JSON داخل الخلايا.
  • الحقول التي تحتوي على فواصل أو أسطر جديدة أو علامات اقتباس مزدوجة تُغلَّف وتُهرَّب تلقائيًا وفق قواعد CSV.

⚠️ القيود والتوافقية

  • CSV تنسيق جدولي مسطح ولا يدعم البنى المتداخلة أصلًا. لذا تُسلسَل كائنات/مصفوفات JSON المتداخلة كنصوص، ولا يمكن استعادتها بالكامل عند التحويل العكسي.
  • كل القيم في CSV نصية. بعد دورة JSON → CSV → JSON قد تعود الأرقام والقيم المنطقية كسلاسل نصية.
  • تزيل الأداة UTF-8 BOM (\uFEFF) تلقائيًا، لكنها لا تدعم ترميزات أخرى مثل GBK أو Shift-JIS؛ حوّل الملف إلى UTF-8 أولًا.
  • مثل JSON في JavaScript، تخضع الأداة لقيود IEEE 754؛ وقد تفقد الأعداد الصحيحة الأكبر من 53 بت دقتها.

🔒 الخصوصية والأمان

  • تتم جميع المعالجة محليًا داخل متصفحك، ولا تغادر بياناتك جهازك.

❓ أسئلة شائعة

ما هو CSV؟ وما علاقته بـ TSV وExcel؟

CSV (Comma-Separated Values) هو تنسيق جداول نصي بسيط، يمثّل كل سطر فيه سجلًا، وتُفصل الحقول بفواصل. أما TSV فهو نفس الفكرة لكن بعلامات تبويب بدل الفواصل. يستطيع Excel فتح وتصدير التنسيقين، لكن ‎.xlsx بحد ذاته تنسيق ثنائي مختلف. هذه الأداة تتعامل مع CSV/TSV النصي فقط، وليس ملفات ‎.xlsx. تاريخيًا لم يكن لـ CSV معيار موحد صارم، إلى أن جاء RFC 4180 عام 2005 ووضع القواعد الأساسية: فصل الحقول بالفاصلة، وتغليف الحقول ذات الأحرف الخاصة بعلامات اقتباس مزدوجة، وتهريب علامة الاقتباس داخل الحقل المقتبس على شكل علامتي اقتباس متتاليتين. وما زالت الفروقات التنفيذية بين البرامج سببًا شائعًا لمشكلات الاستيراد والتصدير.

كيف تعمل آلية «التعرف التلقائي» على الفاصل؟ وهل يمكن أن تخطئ؟

تفحص الأداة السطر الأول وتحسب عدد الفواصل وعلامات التبويب والفواصل المنقوطة والخطوط العمودية (|) الظاهرة خارج الحقول المقتبسة، ثم تختار الأكثر تكرارًا كفاصل. هذا يعمل بدقة في معظم ملفات CSV/TSV القياسية. وقد يخطئ في حالات مثل وجود عمود واحد فقط (من دون فاصل)، أو احتواء القيم نفسها على عدد كبير من رموز الفواصل. عندها حدّد الفاصل يدويًا.

ما الفرق بين تفعيل «استخدام صف الرأس» وتعطيله؟

عند التفعيل يُعامل الصف الأول كأسماء أعمدة، وتتحول كل سطر بيانات إلى كائن JSON بمفاتيح تلك الأسماء (مثل {"name": "Alice", "age": "30"}). وعند التعطيل تُعامل كل الصفوف، بما فيها الصف الأول، كبيانات وتتحول إلى مصفوفة ثنائية الأبعاد (مثل [["name", "age"], ["Alice", "30"]]). وفي اتجاه JSON → CSV، يؤدي التفعيل إلى إخراج مفاتيح الكائن في الصف الأول من CSV.

إذا كان JSON يحتوي على كائنات متداخلة، هل يمكن التحويل ذهابًا وإيابًا بدون فقدان؟

ليس بالكامل. في JSON → CSV تُحوَّل الكائنات/المصفوفات المتداخلة إلى نص داخل الخلية عبر JSON.stringify. وعند CSV → JSON تبقى هذه القيم نصوصًا ولا تُفك تلقائيًا إلى كائنات. إذا كانت سلامة البنية مهمة، فقم بتسطيح JSON قبل التحويل.

هل يمكن تحويل البيانات المنسوخة من Excel مباشرة؟

نعم. عند نسخ نطاق خلايا من Excel ولصقه في محرر CSV، تكون البيانات عادة مفصولة بعلامات تبويب. يتعرف الوضع التلقائي عليها كـ TSV ويحوّلها بشكل صحيح. وإذا أردت تنزيل النتيجة بصيغة ‎.csv مفصولة بفواصل، فغيّر الفاصل إلى الفاصلة قبل التنزيل.

كيف تُعالج علامات الاقتباس والأسطر الجديدة داخل حقول CSV؟

تتبع الأداة RFC 4180: إذا احتوى الحقل على فاصل أو سطر جديد أو علامة اقتباس مزدوجة، يُغلَّف الحقل كاملًا بعلامات اقتباس مزدوجة. وتُهرَّب علامات الاقتباس داخل الحقل كعلامتي اقتباس متتاليتين (""). يطبَّق ذلك عند التحليل والإخراج معًا. وإذا وُجدت علامة اقتباس غير مغلقة، ستظهر رسالة «علامة اقتباس غير مغلقة في إدخال CSV».