الأدوات
الأدلة

محوّل JSON إلى CSV

JSON

تسطيح مصفوفة من كائنات JSON إلى CSV مع اقتباس RFC 4180. تنزيل النتيجة كملف.

100% من جهة العميل بدون خادم خلفي
الإدخال
الإخراج
في هذه الصفحة

ما هو مُحوِّل JSON إلى CSV؟#

يأخذ مُحوِّل JSON إلى CSV مصفوفة JSON من الكائنات — الشكل الذي تُخرجه معظم الواجهات البرمجية وقواعد البيانات حين تُعيد صفوفًا — ويكتبها كـ نص CSV، قيم مفصولة بفواصل. كل كائن يصير سطرًا، وكل مفتاح ذي مستوى أعلى يصير عمودًا، ويحمل السطر الأول أسماء الحقول. الناتج نص عادي تستورده جداول البيانات وأدوات البيانات وقواعد البيانات مباشرةً.

يبدو CSV تافهًا حتى تضطر لإنتاجه بشكل صحيح. الصيغة التي تعمل في كل مكان فعلًا هي RFC 4180: الحقول التي تحوي فاصلة، أو علامة اقتباس مزدوجة، أو فاصل أسطر يجب أن تُحاط بعلامات اقتباس مزدوجة، وأي علامة اقتباس مزدوجة داخل الحقل يجب أن تُضاعَف (""). وتُفصل الأسطر بـ CRLF، لا بسطر جديد مجرد. أخطأت في أي من ذلك واسم مثل Smith, John أو قيمة مثل He said "hi" تُفسد الأعمدة في اتجاه التيار بصمت — فيرى جدول البيانات عمودًا إضافيًا أو يقتطع حقلًا.

يتعامل هذا المُحوِّل مع كل ذلك نيابةً عنك، ويجاري أيضًا الحقيقة المحرجة أن JSON هرمي وCSV مسطّح: تُسطَّح الكائنات المتداخلة إلى أعمدة بتدوين النقاط (address.city)، وتُسلسَل حقول المصفوفات أو الكائنات التي لا يمكن تسطيحها كنص JSON داخل خليتها. وأنت تختار الفاصل — فاصلة، فاصلة منقوطة، علامة تبويب، أو شريط رأسي — لأن “CSV” تعني أشياء مختلفة في لغات مختلفة.

كيفية الاستخدام#

  1. الصق مصفوفة JSON من الكائنات في لوحة الإدخال على اليسار. يُقبل أيضًا كائن مفرد، أو كائن يلتف حول الصفوف تحت مفتاح واحد مثل {"data": [...]}.
  2. اختر الفاصل, (الافتراضي)، ;، Tab، أو |. الفاصلة المنقوطة ما تتوقعه كثير من اللغات الأوروبية من Excel؛ وعلامة التبويب تُعطي TSV.
  3. فعِّل تسطيح المتداخل (مُفعَّل افتراضيًا) لتوسيع الكائنات المتداخلة إلى أعمدة بتدوين النقاط. ألغِ تفعيله لإبقاء الكائنات المتداخلة كنص JSON في خلية واحدة.
  4. يظهر CSV حيًّا في لوحة الإخراج، مع تطبيق الاقتباس حيثما احتاجه حقل. يُذكِر سطر الحالة عدد الصفوف.
  5. انقر تنزيل لحفظ data.csv، أو نسخ لأخذ النص إلى الحافظة.
  6. يحمِّل مثال مجموعة بيانات صغيرة من صفين؛ ويعيد مسح ضبط اللوحتين.

الميزات الرئيسية#

  • اقتباس RFC 4180. تُحاط الحقول وتُضاعَف علامات الاقتباس الداخلية تمامًا حين تتطلب المواصفة ذلك، فالفواصل وعلامات الاقتباس وفواصل الأسطر داخل القيم لا تكسر بنية الأعمدة أبدًا.
  • نهايات أسطر CRLF. يستخدم المخرجات فواصل أسطر بنمط Windows، مما يزيد التوافق مع Excel وبرامج الجداول الأخرى عبر المنصات.
  • خيار الفاصل. فاصلة، فاصلة منقوطة، علامة تبويب، أو شريط رأسي — اختر ما يتوقعه أداك النهائي، ويتكيّف الاقتباس مع الفاصل المختار.
  • تسطيح بتدوين النقاط. تتوسع الكائنات المتداخلة إلى أعمدة مسماة فتقف حقولها الداخلية بمفردها؛ وتصير المصفوفات والكائنات العنيدة خلايا نص JSON بدلًا من أن تُسقَط.
  • أعمدة ثابتة مع صفوف غير منتظمة. العناوين هي اتحاد مفاتيح كل صف بترتيب الظهور الأول، فالصفوف بحقول زائدة أو ناقصة لا تزال تصطف صحيحًا.

مثال عملي#

حمِّل مثال فتكون المدخلات مصفوفة من صفين:

[
  { "name": "Ada Lovelace", "role": "Engineer", "skills": ["math", "logic"] },
  { "name": "Bob",          "role": "PM",       "skills": ["docs"] }
]

مع الفاصل , وتسطيح المتداخل مُفعَّلًا، الأعمدة هي name، role، skills. حقل skills مصفوفة، فيُسلسَل إلى نص JSON؛ ولأن ذلك النص يحوي فواصل وعلامات اقتباس مزدوجة، فإنه يُحاط بعلامات اقتباس وتُضاعَف علاماته الداخلية:

name,role,skills
Ada Lovelace,Engineer,"[""math"",""logic""]"
Bob,PM,"[""docs""]"

لاحظ شيئين فعلهما المُحوِّل بصمت وبصواب. Ada Lovelace غير مُحاط بعلامات اقتباس، لأنه يحوي مسافة فقط — لا فاصل ولا علامة اقتباس ولا سطر جديد — فكان تغليفه بلا جدوى. وخلية skills لـ Ada مُحاطة بعلامات اقتباس مع مضاعفة العلامات الداخلية، لأنها تحوي فواصل وعلامات " معًا كانت ستُفسد الصف لولا ذلك.

بدِّل الفاصل إلى ; فلا تتعارض الفواصل داخل خلية skills مع الفاصل بعد الآن، لكن الحقل لا يزال مُحاطًا بسبب علامات الاقتباس المزدوجة المُضمَّنة — فالمُحوِّل يحط اقتباسًا حينما يوجد أي مُحفِّز RFC 4180، لا الفاصل فحسب.

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

لماذا تُضاعَف علامات الاقتباس المزدوجة في بياناتي إلى ""؟#

هذه قاعدة RFC 4180 لتضمين علامة اقتباس مزدوجة حرفية داخل حقل مُحاط: تُكتب مرتين. قيمة مثل He said "hi" تصير "He said ""hi""" في CSV — علامات خارجية تحيط بالحقل (لأنه يحوي ")، وكل " داخلية تُضاعَف ليعرف المحلّل أنها بيانات لا نهاية الحقل. الأدوات التي تقرأ CSV بشكل صحيح ستستعيد علامات الاقتباس المفردة الأصلية عند الاستيراد.

يحوي حقي فاصلة. هل سيكسر الأعمدة؟#

لا. أي حقل يحوي الفاصل، أو علامة اقتباس مزدوجة، أو إرجاع، أو سطر جديد يُحاط تلقائيًا بعلامات اقتباس مزدوجة، فقيمة مثل Smith, John تصير "Smith, John" وتبقى في عمود واحد. لا تضطر لتهريب أي شيء يدويًا.

لماذا أختار الفاصلة المنقوطة أو علامة التبويب بدلًا من الفاصلة؟#

اللغة. يستخدم Excel في كثير من اللغات الأوروبية ; كفاصل قوائم افتراضي، فملف مفصول بفواصل يُفتح بكل شيء مُكدَّس في عمود واحد حتى تُعيد استيراده. والفصل بعلامات تبويب (TSV) هو الأكثر أمانًا حين قد تحوي بياناتك فواصل وفواصل منقوطة معًا — علامات التبويب لا تظهر عمليًا في قيم حقيقية. اختر ما يتوقعه أداك النهائي.

ماذا يحدث للكائن المتداخل أو حقل المصفوفة؟#

مع تسطيح المتداخل مُفعَّل، يتوسع الكائن المتداخل إلى أعمدة بتدوين النقاط (address.city، address.zip)، فيحصل كل قيمة داخلية على عمودها. أما حقل المصفوفة فلا يمكن تسطيحه إلى أعمدة بلا فقدان، فيُسلسَل كنص JSON داخل خليته — مثلًا ["math","logic"]. لا شيء يُسقَط؛ إن فضّلت كل عنصر مصفوفة في صفه، فأعد هيكلة JSON أولًا.