محوِّل CSV ↔ JSON (متوافق مع RFC 4180)
الصق CSV أو JSON. يُحلِّل المحوِّل CSV المتوافق مع RFC 4180 (يتعامل مع الحقول المقتبسة التي تحتوي فواصل واقتباسات هاربة وقيم متعددة الأسطر). لـ JSON-إلى-CSV، يقبل كلًّا من مصفوفة-من-كائنات (يستخدم المفاتيح كرؤوس) ومصفوفة-من-مصفوفات.
[
{
"name": "Alice",
"age": "30",
"city": "Tokyo"
},
{
"name": "Bob",
"age": "25",
"city": "Seoul"
},
{
"name": "Carol",
"age": "42",
"city": "Madrid"
}
]كيف تعمل
لماذا RFC 4180 مهم
CSV يبدو بسيطًا لكنه يحتوي حالات خاصة: حقل يحتوي فاصلة يجب اقتباسه؛ حقل يحتوي اقتباسًا يجب تهريبه كاقتباس مضاعف؛ يمكن لحقل احتواء أسطر جديدة إذا كان مقتبسًا. المحلِّلات البسيطة التي تقسِّم على الفاصلة تنكسر على البيانات الحقيقية. يُنفِّذ هذا المحوِّل قواعد RFC 4180 بالضبط.
المحلِّلات البسيطة تنكسر أيضًا على صادرات Excel التي تستخدم الفاصلة المنقوطة (شائع في اللغات الأوروبية حيث ',' هو الفاصل العشري) أو الجدولة (TSV). القائمة المنسدلة للمحدِّد تتعامل مع جميع المتغيرات الأربعة الشائعة.
أشكال JSON للإخراج
مصفوفة من كائنات (افتراضي مع صف الرأس): كل صف يصبح {عمود: قيمة}. أكثر أشكال JSON شيوعًا، سهل الاستهلاك في أي لغة.
مصفوفة من مصفوفات (صف الرأس معطَّل): كل صف يصبح [ق1، ق2، ...]. مفيد حين لا تُسمَّى الأعمدة أو تريد هيكلًا وضعيًا.
عند التحويل من JSON إلى CSV، يكتشف المحوِّل الشكل الذي تملكه. الكائنات: يستخرج المفاتيح الفريدة عبر جميع الصفوف للرؤوس. المصفوفات: يكتب الصفوف كما هي.
المزالق الشائعة
لغة Excel: في بعض إعدادات Excel الأوروبية، المحدِّد الافتراضي ';' لا ','. إذا بدا CSV كعمود واحد ضخم عند الاستيراد، بدِّل إلى ; في قائمة المحدِّد.
BOM (علامة ترتيب البايت): بعض صادرات Excel تُضيف بادئة U+FEFF للملف. نمرِّرها؛ إذا فشل المحلِّل التالي، اجرد أول 3 بايتات.
سطر جديد نهائي: CSV يينتهي بـ'\n' يُضيف صفًا أخيرًا فارغًا في بعض المحلِّلات؛ نُرشِّح الصفوف الفارغة تلقائيًا.
الأرقام كسلاسل: CSV بلا أنواع — '42' يصبح السلسلة "42" في JSON. إذا أردت قيمًا مُكتَّبة، نفِّذ خطوة ما بعد المعالجة التي تحوِّل الأعمدة الرقمية المعروفة.
أسئلة شائعة
›هل يتعامل هذا مع الحقول المقتبسة التي تحتوي فواصل؟
نعم — الاقتباس وفق RFC 4180 مدعوم كليًا. "Doe, John" يُحلَّل كحقل واحد.
›كيف تُعالَج الاقتباسات الهاربة؟
وفق RFC 4180، '"' حرفي داخل حقل مقتبس يُكتب كـ'""' (اقتباسان). المحلِّل يتعامل مع هذا بشكل صحيح.
›هل يمكن للحقول احتواء أسطر جديدة؟
نعم، حين تكون مقتبسة. "سطر 1\nسطر 2" داخل اقتباسات يُعامَل كحقل واحد مع سطر جديد مُضمَّن.
›هل يدعم BOM (UTF-8)؟
BOM يمر. إذا لم يتحمله المستهلك التالي، اجرِد أول 3 بايتات (EF BB BF) من CSV.
›ماذا عن الملفات الضخمة؟
المتصفح يتعامل مع بضعة MB بلا مشكلة. للـ CSV الكبيرة جدًا (100MB+)، استخدم محلِّلًا متدفقًا كـ Papa Parse مع worker، أو أداة CLI.
›هل تُحفَظ الأرقام كأرقام؟
CSV → JSON: جميع القيم تصبح سلاسل (CSV بلا أنواع). JSON → CSV: الأرقام تصبح خلايا CSV غير مقتبسة. للحصول على JSON مُكتَّب، عالج الأعمدة التي تعرف أنها رقمية.
›لماذا يُظهر JSON سلاسل فارغة بدلًا من null؟
CSV يمثِّل القيم المفقودة كخلايا فارغة. نعيِّنها إلى سلاسل فارغة. للحصول على null في JSON، عالج الناتج.
›هل تغادر البيانات متصفحي؟
لا. يعمل التحويل محليًا؛ لا يُرسل شيء إلى خادم.
أدوات ذات صلة
آخر تحديث: