محول CSV إلى JSON
الصق CSV (أو TSV) على اليمين، احصل على مصفوفة JSON من الكائنات على اليسار. اكتشاف تلقائي للرؤوس. بدون رفع.
- الصق CSV في منطقة النص اليمنى.
- انقر «التحويل إلى JSON». تُعتبر الصفوف الأولى رؤوسًا.
- انسخ مصفوفة JSON أو نزّلها كـ data.json.
- يكتشف PapaParse تلقائيًا TSV (مفصول بعلامة تبويب) وفواصل أخرى.
ماذا تفعل؟
يحلّل CSV (شبه RFC 4180) إلى مصفوفة JSON يتطابق مفتاح كل كائن مع عمود الرؤوس. تُعالَج الحقول المقتبسة، الفواصل المضمَّنة، علامات الاقتباس المزدوجة المهرَّبة، ونهايات السطر CRLF / LF. تُحوَّل الأرقام والقيم البولية والقيم الشبيهة بـ null تلقائيًا. الفاصل يُكتشَف تلقائيًا — يمكنك لصق TSV أو بيانات مفصولة بفاصلة منقوطة أو شريط عمودي.
مثال
مدخل CSV:
name,age,role
Ada,36,engineer
Grace,40,scientist مخرج JSON:
[
{"name": "Ada", "age": 36, "role": "engineer"},
{"name": "Grace", "age": 40, "role": "scientist"}
] مزالق CSV الشائعة وكيفية التعامل معها
يبدو CSV بسيطًا لكنه يحتوي حالات حدية أكثر مما يُتوقَّع. هذه هي الأنماط التي تنتج مخرجات مفاجئة.
- فواصل مضمَّنة بدون اقتباس. حقل مثل `Smith, John` (بدون اقتباس محيط) يُقسَّم إلى عمودين. غلِّف هذه الحقول بعلامات اقتباس مزدوجة: `"Smith, John"`.
- علامات اقتباس مزدوجة داخل الحقل. داخل حقل مقتبَس، تُهرَّب `"` الحرفية بمضاعفتها: `"He said ""hi"""` يُفك إلى `He said "hi"`. تهريب الشرطة المائلة (`\"`) غير معياري وغير مدعوم.
- عدد أعمدة غير متسق. الصفوف ذات أعمدة أقل من الرؤوس تحصل على null للمفاتيح المفقودة؛ الصفوف ذات أعمدة أكثر تُبلَّغ كتحذير تحليل. يكتمل التحويل لكن راجع المخرج.
- معرّفات رقمية تفقد الأصفار البادئة. `007` يُحلَّل كرقم 7 لا كنص "007". إذا كانت الأصفار البادئة مهمة (رموز بريدية، أرقام هاتف)، عالج مسبقًا باقتباس الحقل — يمكن استمرار قراءة القيم المقتبسة كنصوص بإيقاف التحويل الديناميكي في الكود اللاحق.
- BOM في بداية الملف. CSV المحفوظ من Excel كثيرًا ما يحوي علامة ترتيب البايت UTF-8 (`\uFEFF`) في البداية. يزيلها المحلِّل، لكن إذا لصقت بايتات خام من محرر سداسي عشري قد ترى BOM كحرف غريب على الرأس الأول.
- نهايات أسطر مختلطة. CRLF (Windows) و LF (Unix) و CR (Mac قديم) مُعتَرَف بها. إذا بدا المخرج صفًا واحدًا ضخمًا، فقد لا يحتوي الملف فواصل أسطر — شائع عند توليد CSV بالتسلسل بلا `\n`.
الأسئلة الشائعة
هل يدعم القيم المفصولة بعلامة تبويب (TSV)؟
نعم. يكتشف PapaParse الفاصل تلقائيًا من أول كيلوبايت من الإدخال. التبويبات والفواصل المنقوطة والشرائط العمودية والفواصل تعمل دون تهيئة. إذا أخطأ الاكتشاف (نادر على بيانات حقيقية)، افصل الحقول بشكل أوضح أو عالج مسبقًا.
ماذا لو لم يكن لـ CSV صف رؤوس؟
الإعداد الحالي يفترض أن الصف الأول رؤوس. إن لم تكن موجودة، أضف صف رؤوس اصطناعي مثل `a,b,c` قبل اللصق — أو حوّل بـ `header: false` في PapaParse من سطر الأوامر إذا أردت ناتج مصفوفة-من-مصفوفات.
كيف تُعالَج التواريخ؟
تبقى نصوصًا. يحوّل المحلِّل تلقائيًا الأرقام والبوليان فقط — تُترَك التواريخ عمدًا لأن غموض التنسيق (`01/02/03` هو 2 يناير في الولايات المتحدة و 1 فبراير في المملكة المتحدة) محفوف بالمخاطر. حلّلها لاحقًا حيث تعرف اصطلاح المصدر.
هل يمكنني تحويل ملفات CSV كبيرة جدًا؟
حتى نحو 50 ميغابايت قبل أن يصبح المتصفح بطيئًا. العائق هو منطقة النص لا المحلِّل — للملفات الأكبر شغّل PapaParse من سطر الأوامر. المكتبة نفسها.
هل يُرفَع CSV الخاص بي؟
لا. كل شيء يعمل في متصفحك — تُحلَّل بياناتك بـ JavaScript على هذه الصفحة ولا تُرسَل إلى أي خادم. تحقَّق في أدوات المطوّر: لا توجد أي طلبات شبكة عند النقر على «تحويل».
كيف أحصل على JSON بشكل مختلف (متداخل، مجمّع)؟
تنتج هذه الأداة مصفوفة مسطحة من كائنات مسطحة — هذا ما يمثّله CSV. للحصول على بنية متداخلة، عالج المخرج لاحقًا بسكربت (تجميع حسب عمود، تحويل أسماء الحقول ببادئات، إلخ). محاولة ترميز التسلسل الهرمي في CSV عادةً تخلق مشاكل أكثر مما تحل.