JSON إلى CSV
حوّل مصفوفة JSON إلى CSV لـExcel أو Google Sheets أو استيراد قاعدة بيانات. تُسطَّح الكائنات المتداخلة إلى أعمدة بنقاط، وتُدمَج السجلات ذات الأشكال المختلفة في مجموعة أعمدة واحدة.
- الملفات لا تغادر جهازك أبدًا
- مجاني، بدون تسجيل
- بدون علامات مائية
- يعمل دون اتصال بعد التحميل
كيفية استخدام JSON إلى CSV
- 1
ألصق JSON الخاص بك
مصفوفة كائنات تعمل بشكل أفضل — ستخبرك الأداة إذا احتاجت شكلًا مختلفًا.
- 2
حدّد خياراتك
اختر فاصلًا، وما إذا كنت تريد تسطيح الكائنات المتداخلة إلى أعمدة بنقاط.
- 3
نزّل CSV
احفظه وافتحه مباشرة في Excel أو Google Sheets.
لماذا JSON وCSV شكلا بيانات مختلفان جوهريًا
JSON مبني لتمثيل بيانات متداخلة عشوائيًا على شكل شجرة — كائنات داخل كائنات، مصفوفات داخل كائنات، قيم من أنواع مختلفة حقًا جنبًا إلى جنب — بينما يمكن لـCSV تمثيل جدول مسطح ومنتظم فقط: صفوف وأعمدة، كل صف بنفس مجموعة الأعمدة، كل خلية قيمة مسطحة واحدة. التحويل من الشكل الأول إلى الثاني يعني بالضرورة اتخاذ قرارات حول كيفية تسطيح شيء لا يتناسب طبيعيًا في صفوف وأعمدة، وهذا حيث يعيش معظم التعقيد الحقيقي لهذا النوع من التحويل — ليس في قراءة صياغة JSON نفسها، وهي مباشرة، بل في تقرير ما الذي يجب أن يعنيه صف جدول بيانات أصلًا لبيانات لم تكن أبدًا جدولية من الأساس.
كيف تتحول الكائنات المتداخلة إلى أسماء أعمدة بنقاط
كائن متداخل مثل `{"user": {"name": "Ada", "id": 42}}` ليس له عمود واحد واضح ليتحول إليه في جدول مسطح، لذا يُسطَّح إلى عمودين منفصلين — `user.name` و`user.id` — مع حفاظ الترميز بالنقاط بدقة على مصدر كل قيمة في البنية الأصلية. هذا اصطلاح معترف به على نطاق واسع تحديدًا لأنه قابل للعكس: عمود اسمه `user.name` يصف دون لبس مسارًا مرة أخرى إلى بنية متداخلة، وهذا مهم إذا احتاج CSV أبدًا التحول مرة أخرى إلى JSON أو استيراده في نظام يفهم مسارات بنقاط كحقول متداخلة.
تُعامَل المصفوفات المتداخلة بشكل مختلف، وعمدًا كذلك: بدلًا من تفجير مصفوفة إلى صفوف إضافية — مما سيُغيِّر عدد صفوف الجدول اعتمادًا على عدد العناصر المتداخلة التي يتضح أنها داخل سجل، تأثير جانبي مفاجئ حقًا وغير مرغوب غالبًا — تُسلسَل قيمة مصفوفة كنص JSON داخل خلية واحدة. يبقى عدد الصفوف متوقَّعًا ويطابق بالضبط عدد سجلات الإدخال، وهذا تقريبًا دائمًا ما يريده فعليًا شخص يُحوِّل إلى جدول بيانات، مقابل أن تلك الخلية تحتاج تحليلًا إضافيًا إذا احتيج محتواها فرديًا.
التعامل مع مزيج من السجلات ليس كلها بنفس الحقول
غالبًا ما تحتوي استجابات API الحقيقية وJSON المُجمَّع يدويًا سجلات ليس فيها كل الكائنات لها مفاتيح متطابقة — حقل اختياري موجود في بعض السجلات وغائب في أخرى، أو مخطط تطور بمرور الوقت لذا تختلف السجلات الأقدم والأحدث قليلًا. لا يمكن لـCSV تمثيل ذلك التفاوت مباشرة، بما أن كل صف يحتاج المحاذاة لنفس مجموعة الأعمدة الثابتة؛ برنامج يقرأ ملف CSV ليس له طريقة لمعرفة أن صفًا "يفتقد" عمودًا ما لم يكن لكل صف صراحة خلية له. الحل هو حساب اتحاد كل مفتاح رُئي في كل سجل، بترتيب إيجاد كل مفتاح أولًا، وملء خلية فارغة لأي سجل يفتقد حقلًا معينًا — لذا يبقى الشكل متسقًا عبر الملف بأكمله دون إهمال بصمت أعمدة أي سجل أو عدم محاذاة قيم في العمود الخاطئ.
الأسئلة الشائعة
أي شكل JSON تتوقعه؟
مصفوفة كائنات — الشكل الذي تُعيده تقريبًا أي API. يُعامَل كائن واحد كجدول من صف واحد. تُنتج مصفوفات القيم البدائية ملفًا بعمود واحد.
كيف تُعامَل الكائنات المتداخلة؟
تُسطَّح إلى أسماء أعمدة بنقاط، لذا `{"user":{"name":"Ada"}}` يصبح عمودًا اسمه `user.name`. تُكتَب المصفوفات المتداخلة كنص JSON في خلية واحدة بدلًا من تفجيرها إلى صفوف إضافية، لأن تغيير عدد الصفوف نادرًا ما يكون ما يريده تصدير جدول بيانات.
ماذا لو كانت لسجلاتي حقول مختلفة؟
مجموعة الأعمدة هي اتحاد كل مفتاح تم إيجاده، بترتيب رؤيته أولًا. السجلات التي يفتقد لها حقل تحصل على خلية فارغة بدلًا من الإهمال أو عدم المحاذاة.
لماذا يُفسد Excel ملف CSV الخاص بي؟
عادةً الفاصل: يتوقع Excel في إعدادات أوروبية كثيرة فواصل منقوطة، لا فواصل. غيّر خيار الفاصل. يُعيد Excel أيضًا تنسيق المعرِّفات الرقمية الطويلة كترقيم علمي عند الفتح — الاستيراد عبر بيانات ← من نص يتجنب ذلك.
هل تُهرَب علامات الاقتباس والفواصل داخل القيم؟
نعم، وفقًا لـRFC 4180. تُحاط الحقول التي تحتوي الفاصل أو علامة اقتباس أو سطرًا جديدًا بعلامات اقتباس، وتُضاعَف علامات الاقتباس الداخلية — لذا يتحول الملف بشكل صحيح ذهابًا وإيابًا عبر أي قارئ متوافق.