محول JSON إلى CSV

حوّل JSON إلى CSV عبر الإنترنت — مجانًا، فورًا، وبخصوصية تامة. يتم معالجة ملفك داخل متصفحك مباشرةً ولا يتم رفعه إلى خوادمنا أبدًا.

فاصل CSV
النتيجة

ستظهر الملفات المحوّلة والمعاينة هنا.

جاهز. اختر ملف جدول لتحويله.

كيف تعمل عملية التحويل

  • تتحول مصفوفة الكائنات إلى صفوف وأعمدة؛ ويتم تسطيح الكائنات المتداخلة إلى أعمدة ذات مفاتيح نقطية مثل address.city.
  • اختر الفاصل الذي يطابق بياناتك — الفاصلة، أو الفاصلة المنقوطة، أو علامة التبويب.

يتم تحويل ملف الجدول في متصفحك. لا يُرفع أي شيء إلى BroBroGo.

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

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

اسحب ملف JSON وانقر على زر التحويل — سيكون ملف CSV جاهزًا للتنزيل في ثوانٍ معدودة، مع عرض معاينة للنتيجة. وتتم معالجة كل شيء محليًا على جهازك.

ما هو الحد الأقصى لحجم الملف الذي يمكنني تحويله؟

ندعم ملفات بحجم يصل إلى 8 ميجابايت، و10,000 صف، و200 عمود لكل ملف. بالنسبة لمجموعات البيانات الأكبر حجمًا، يُفضل تقسيمها إلى ملفات أصغر أولاً.

ما الذي تفعله هذه الأداة بالضبط؟

هذه الصفحة تتيح لك تحويل ملف JSON إلى ملف CSV. الرفع يتم بسحب الملف وإفلاته في المنطقة المخصصة أو من خلال اختياره من جهازك. بعد ذلك تختار المحدد (delimiter) الذي تريده للـ CSV: الفاصلة (comma)، الفاصلة المنقوطة (semicolon)، أو علامة التبويب (tab). تظهر معاينة للجدول الناتج مع عدد الصفوف والأعمدة، ثم يمكنك تنزيل الملف المحوّل. كل المعالجة تحدث في المتصفح فقط – لا يُرفع أي شيء إلى أي خادم.

الملف المُدخل يجب أن يكون بتنسيق JSON فقط (الصفحة تقبل أيضاً CSV و XLSX لكننا هنا نتحدث عن تحويل JSON). الملف الناتج هو CSV جاهز للتنزيل.

الفرق الجوهري: من التنسيق الهرمي إلى الجدولي المسطح

JSON هو تنسيق هرمي يدعم الكائنات المتداخلة والمصفوفات والأنواع المختلفة: أرقام، قيم منطقية (boolean)، قيمة خالية (null). أما CSV فهو تنسيق مسطح بلا أنواع وبلا تداخل ولا أوراق عمل متعددة. التحويل يجب أن يسطّح (flatten) هذا الهيكل الهرمي إلى جدول مسطح أحادي البُعد.

البيانات التي كانت في كائن متداخل مثل {"address": {"city": "Cairo", "street": "Main"}} تتحول إلى عمودين بأسماء مثل address.city و address.street. المصفوفات التي تحتوي على كائنات تتحول إلى صفوف منفصلة، والمصفوفات التي تحتوي على مصفوفات أخرى تُعامل كل مصفوفة داخلية كصف بمجرد عناصره.

ما يُفقَد تماماً:

  • أنواع البيانات: الأرقام والمنطقية تصبح نصوصاً. مثلاً القيمة true تتحول إلى النص "true"، والرقم 42 يصبح "42".
  • القيمة null تتحول إلى سلسلة نصية فارغة أو النص "null" حسب المعالجة (الأداة تتعامل معها ضمن قواعد الـ CSV).
  • التداخل: كل الهيكل الهرمي يُفقد ويبقى فقط التمثيل المُسطّح باستخدام النقاط.
  • الصيغ والتنسيق: لا تُحتفظ بأي صيغ من الملف الأصلي (ولا وجود لها في JSON أصلاً).

هذه الخسارة ضرورية لأن CSV لا يدعم هذه الميزات. إذا كنت بحاجة إلى الاحتفاظ بالهيكل الهرمي، فاستخدم تنسيقاً آخر مثل Excel (XLSX) أو JSON نفسه.

كيف تتم عملية التسطيح (Flattening)؟

عند رفع ملف JSON، تقوم الأداة أولاً بالتحقق مما إذا كان الملف جدولي الشكل (table‑shaped). هذا يعني أن يكون JSON عبارة عن مصفوفة واحدة من الكائنات أو مصفوفة من المصفوفات. إذا كان غير ذلك، يظهر الخطأ: "This JSON is invalid or not table‑shaped."

الحالة الأولى: مصفوفة من الكائنات.

مثال:

[
  { "name": "Ali", "age": 25, "address": { "city": "Cairo", "zip": 12345 } },
  { "name": "Sara", "age": 30, "address": { "city": "Alex", "zip": 54321 } }
]

هذا يتحول إلى جدول بأعمدة: name, age, address.city, address.zip. كل كائن يمثل صفاً. النقاط تفصل بين مستويات التداخل.

الحالة الثانية: مصفوفة من المصفوفات.

مثال:

[,
]

هذا يتحول إلى جدول بثلاثة أعمدة (بدون أسماء) وصفين.

لو كان لديك كائن واحد فقط (وليس مصفوفة)، لن يكون جدولياً. لو كانت المصفوفة تحتوي على أنواع مختلفة من الكائنات بأعمدة مختلفة، الأداة ستتعامل معها لكنها قد تنتج أعمدة متفرقة (missing values).

اختيار المحدد (Delimiter) وعواقبه

CSV يعني "قيم مفصولة بفاصلة" لكن المحدد ليس دائماً الفاصلة. الخيارات الثلاثة هنا:

  • الفاصلة (,): المعيار في معظم الدول الناطقة بالإنجليزية. لكن إذا كانت القيم تحتوي على فاصلة (مثل "Cairo, Egypt")، فإن الخلية بأكملها تُحاط بعلامات اقتباس مزدوجة تلقائياً.
  • الفاصلة المنقوطة (;): تُستخدم في الدول الأوروبية حيث الفاصلة هي فاصل عشري (مثل ألمانيا). استعمالها يتجنب التضارب مع الفواصل العشرية.
  • علامة التبويب (Tab): تُستخدم في بعض أدوات تحليل البيانات مثل Excel في بعض الإصدارات، أو عندما تحتوي البيانات على فواصل كثيرة.

ما يهمك ككاتب أو محلل بيانات: اختر المحدد الذي يتوافق مع البرنامج الذي ستفتح به الملف. إذا كنت في منطقة تستخدم الفاصلة المنقوطة، اخترها. الأداة تطبق قواعد الاقتباس المعيارية: أي قيمة تحتوي على المحدد نفسه، أو علامة اقتباس مزدوجة، أو سطر جديد، تُحاط بعلامات اقتباس مزدوجة وتُفلت الاقتباسات الداخلية بتكرارها (مثلاً "سطر ""داخلي"").

القيود وحالات الحافة (Edge Cases)

  • حجم الملف: هناك حد أقصى للحجم، وعند تجاوزه يظهر الخطأ "This file is too large. Use a file under ‹max›." الأرقام المحددة لا نعرفها من صحيفة الحقائق، لكنها موجودة في واجهة المستخدم.
  • عدد الصفوف والأعمدة: إذا تجاوز الجدول الحد الأقصى للصفوف أو الأعمدة، تظهر رسائل منفصلة: "This table has more than ‹max› rows." و "This table has more than ‹max› columns."
  • الأخطاء المحتملة: اختيار ملف واحد فقط، التأكد من أن التنسيق JSON أو CSV أو XLSX (فقط JSON يهمنا هنا)، اختيار تنسيق إخراج مختلف (يجب أن يكون CSV)، رسالة "Could not convert this file." إذا فشلت المعالجة، "Conversion cancelled." إذا ألغى المستخدم، و "This conversion is taking too long. Try a smaller file."
  • الأصفار البادئة: في JSON، الرقم 0123 يُفسر على أنه 123 (لأن JSON لا يحتفظ بالأصفار البادئة، لكن أداة التحويل في المتصفح قد تفقدها أيضاً). إذا كنت تحتاج إلى الاحتفاظ بالأصفار البادئة (مثل أكواد بريدية)، يجب أن تعامل القيمة كنص في JSON (مضمنة في علامات اقتباس مزدوجة).
  • الأسطر الجديدة والفواصل المضمنة: CSV يتطلب معالجة خاصة. الأداة تتعامل مع ذلك تلقائياً، لكن عليك أن تدرك أن القيم النصية التي تحتوي على أسطر جديدة ستُحاط بعلامات اقتباس وقد تُعطل بعض برامج قراءة CSV القديمة.

لمن هذه الأداة؟

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

أسئلة شائعة (FAQ)

س: ماذا لو كان JSON الخاص بي يحتوي على كائن مُتداخل بعمق كبير؟ ج: الأداة تسطّح كل المستويات باستخدام النقاط. على سبيل المثال، a.b.c يصبح اسم عمود. لكن لا يوجد حد أقصى لعمق التداخل نظرياً، لكن قد تواجه مشاكل في العرض إذا كان الاسم طويلاً جداً.

س: هل يمكنني تحويل JSON إلى CSV والعكس مرة أخرى دون فقدان البيانات؟ ج: لا، لأن CSV لا يحتفظ بالأنواع ولا بالتداخل. إذا قمت بتحويل CSV إلى JSON لاحقاً، ستحصل على كل القيم كنصوص وكل الأعمدة كخصائص مسطحة – لا يمكن استعادة الهيكل الأصلي.

س: لماذا يُظهر المعاينة 0 صف عندما يكون ملفي صحيحاً؟ ج: ربما الملف ليس جدولياً. تحقق من أن JSON يبدأ بمصفوفة (أقواس مربعة [ ]) وليس بكائن (أقواس معقوفة ‹ ›). إذا كان كائناً واحداً، الأداة لن تقبله.

س: هل يمكنني تحويل ملف JSON به عدة كائنات غير متجانسة (مختلفة الحقول)؟ ج: الأداة ستدمج جميع الحقول الموجودة في أي كائن، لكن الحقول المفقودة ستظهر كخلايا فارغة في الصفوف التي لا تحتوي عليها. هذا قد يسبب أعمدة كثيرة وفوضى.

س: هل يتم رفع أي من بياناتي إلى الإنترنت؟ ج: لا، كل شيء يحدث داخل متصفحك باستخدام JavaScript. لا تُرسل أي بيانات إلى أي خادم. لهذا السبب الأداة مناسبة للبيانات الحساسة.

س: ماذا يحدث إذا كان هناك حرف فاصلة داخل قيمة نصية في JSON؟ ج: عند التحويل إلى CSV، ستُحاط هذه القيمة بعلامات اقتباس مزدوجة تلقائياً. على سبيل المثال، "Cairo, Egypt" ستصبح "Cairo, Egypt" في ملف CSV.