§

الصق مصفوفة JSON التي تريد تحويلها إلى CSV.

الفاصل
أعمدة الرأس
الصف الأول هو الرأس
الكائنات المتداخلة
تحويل الأنواع
§

Output

csv

تحويل JSON إلى CSV مهمة يومية في عمل البيانات بالمملكة العربية السعودية والإمارات ومصر: واجهة API تُعيد مصفوفة JSON ويحتاج فريق المالية أو العمليات إلى فتحها في Excel أو Google Sheets قبل حلول الغداء. تنشر بوابة data.gov.sa وهيئة GASTAT مجموعات بيانات إحصائية ضخمة، وتصدر ساما سلاسلها الزمنية المالية، ويصدر CAPMAS المصري بياناته السكانية — كلها تُفلَّت من JSON إلى CSV قبل أن تصل إلى المحللين في جداول البيانات. يُجري هذا المحول التسطيح محلياً فلا تغادر السجلات المالية أو الصحية أو الإحصائية جهازك أبداً.

ما هو تحويل JSON إلى CSV؟

JSON (JavaScript Object Notation، RFC 8259) صيغة نصية شجرية الشكل للبيانات المنظمة؛ CSV (قيم مفصولة بفواصل، RFC 4180) صيغة نصية جدولية مسطّحة. تحويل JSON إلى CSV يُسطِّح تلك الشجرة إلى صفوف وأعمدة، حتى تُفتح مجموعة البيانات القادمة أصلاً من استجابة API مباشرةً في جدول بيانات دون إعادة كتابة صف واحد.

كيف يعمل تحويل JSON إلى CSV؟

كل تحويل يجري محلياً داخل متصفحك. الخطوات الرئيسية هي:

  1. JSON.parse تتحقق من المدخل وتؤكد أنه مصفوفة سجلات على المستوى الأعلى. يظهر خطأ واضح إذا كانت الأقواس أو الفواصل أو المفاتيح المقتبسة غير صحيحة.
  2. يستخلص الكاتب أعمدة الرأس من سجلاتك: إما اتحاد كل المفاتيح الظاهرة، أو المفاتيح من أول سجل فقط، حسب خيارك.
  3. تُسطَّح الكائنات المتداخلة إلى مفاتيح منقوطة (user.id، user.city) أو تُسلسَل كخلية JSON واحدة، حسب اختيارك. المصفوفات داخل الكائنات تُسلسَل دائماً إلى JSON.
  4. كل خلية تُهرَّب وفق RFC 4180: أي قيمة تحوي الفاصل أو علامة اقتباس مزدوجة أو فاصل أسطر تُحاط بعلامتي اقتباس، وتُضاعَف علامات الاقتباس الداخلية. الصفوف تنتهي بـ \r\n.
  5. تُكتب نتيجة CSV في حقل نصي للقراءة فقط، ويبني رابط التنزيل Blob بنوع MIME الصحيح (text/csv;charset=utf-8) لتحفظ الملف بنقرة واحدة.

لماذا تحوّل JSON إلى CSV بهذه الأداة؟

  • الخصوصية: كل عملية تحليل وتسطيح وكتابة تجري داخل متصفحك. لا تصل البيانات إلى خوادمنا أبداً.
  • الصحة: يتبع الكاتب RFC 4180. قيمة كـ Bob, Jr. تظهر كـ "Bob, Jr." — خلية واحدة مقتبسة لا عمودين — وتتحمل الأسطر الجديدة والاقتباسات المضمّنة الجولة الكاملة سليمةً.
  • جاهز للجدول: تُلصق النتيجة مباشرةً في Excel أو Google Sheets مع أعمدة رأس مستخلصة بالفعل من مفاتيحك، فلا تنظيف يدوي قبل الاستخدام.
  • مرونة: سطِّح الكائنات المتداخلة إلى مفاتيح منقوطة أو سلسلها كخلية واحدة، اختر أي فاصل للهجات CSV غير المعتادة، وحدد ما إذا كانت أعمدة الرأس من كل المفاتيح أم من السجل الأول فقط.

ما هي التطبيقات الشائعة لتحويل JSON إلى CSV؟

يظهر تسطيح JSON إلى CSV في عمل البيانات والأدوات:

  • تصدير البيانات: تحويل استجابة API إلى ملف CSV يمكن لفريق المالية أو العمليات أو المنتج فتحه في Excel أو Google Sheets بدون كتابة كود.
  • التقارير: إدراج نتيجة استعلام JSON في جدول بيانات لإنشاء جدول محوري أو مخطط أو صيغ سريعة. هذا النوع من العمل مُضنٍ على JSON الخام.
  • مراجعة جدول البيانات: تسطيح إعداد JSON متداخل (الإعدادات، علامات الميزات، متغيرات A/B) إلى CSV ليتمكن المراجعون غير التقنيين من قراءته وتعديله خلية بخلية.

كيف يبدو مثال تحويل JSON إلى CSV؟

الصق [{"name":"Alice","age":30},{"name":"Bob, Jr.","age":25}]، اترك الفاصل على الفاصلة، ثم اضغط CONVERT. تحصل على ثلاثة أسطر: صف رأس name,age، وصف بيانات Alice,30، وصف "Bob, Jr.",25. الفاصلة المضمّنة هي تحديداً ما يُخطئ فيه الدمج الساذج — هنا تُفعّل اقتباس RFC 4180 فتبقى الخلية متكاملة.

هل يعمل محول JSON إلى CSV هذا داخل متصفحي بالكامل؟

نعم. كل عمليات التحليل والتسطيح والكتابة تجري محلياً كجافاسكربت داخل تبويب المتصفح. لا تستدعي الأداة fetch أو XMLHttpRequest أو navigator.sendBeacon إطلاقاً، فحمولات JSON لا تصل أبداً إلى خوادمنا ولا إلى محوّل طرف ثالث ولا إلى أي خط أنابيب تحليلات. كما تعمل الأداة دون اتصال بمجرد تحميل الصفحة، لأنها حزمة ثابتة من HTML/CSS/JS بدون أي اعتماد API وقت التشغيل.

ما الحد الأقصى لحجم المدخلات الذي يستطيع المحول التعامل معه؟

يحتفظ المحول بكامل المدخل في الذاكرة ويعمل بشكل متزامن على الخيط الرئيسي، فتعتمد الحدود العملية على جهازك. المدخلات حتى نحو 10 ميغابايت من JSON (نحو 100 ألف صف نموذجي) تتحوّل دون توقف ملحوظ على حاسب محمول حديث. بعد ذلك قد تتوقف الواجهة أثناء عمل الكاتب. التحويل المتدفق عبر Web Worker مع كاتب مقطّع تطوير لاحق مخطط له — حالياً قسِّم المجموعات الكبيرة جداً قبل لصقها.

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

وفق RFC 4180. أي قيمة تحوي الفاصل النشط أو علامة اقتباس مزدوجة أو CR أو LF تُحاط بعلامتي اقتباس مزدوجتين، وتُضاعَف علامات الاقتباس الداخلية. إذن اسم كـ Bob, Jr. يُصبح الخلية الواحدة "Bob, Jr." لا عمودين، ووصف متعدد الأسطر يبقى في خلية واحدة دون كسر الصف. هذا تحديداً ما يُخطئ فيه join(',') الساذج.

ماذا يحدث للكائنات JSON المتداخلة عند التحويل إلى CSV؟

تُعالَج الكائنات المتداخلة وفق مفتاح الكائنات المتداخلة. في وضع التسطيح (الافتراضي) تُربط المفاتيح بنقاط — {"user":{"id":1,"city":"Paris"}} يصبح عمودي user.id و user.city. وفي وضع الترميز يُسلسل الكائن المتداخل كقيمة خلية JSON واحدة مع الإبقاء على تهريب اقتباس RFC 4180، فيُحفظ هيكله لإعادة الجولة. المصفوفات داخل الكائنات تُسلسل إلى JSON في كلا الوضعين.

ما الفواصل التي يدعمها إخراج CSV؟

أربعة: الفاصلة (,، افتراضي RFC 4180)، الفاصلة المنقوطة (;، شائعة في اللغات الأوروبية)، علامة الجدولة (\t، صيغة TSV)، والشرطة العمودية (|). اختر ما يتوقعه الأداة المُستقبِلة. يُهرَّب الكاتب أي خلية تحوي الفاصل المختار، فالاختيار لا يُفسد قيمة أبداً.

يُسطِّح محول JSON إلى CSV هذا مصفوفتك ويُصدر ناتجاً متوافقاً مع RFC 4180 يمكنك لصقه مباشرةً في جدول بيانات أو تقرير أو مراجعة كود، دون رفع بايت واحد. هل تحتاج العكس؟ يُحلِّل محول CSV إلى JSON في الاتجاه الآخر.