حوّل مصفوفة من كائنات JSON إلى CSV وفق معيار RFC 4180. يبسّط الكائنات المتداخلة إلى أعمدة مفصولة بالنقاط، ويتعامل مع السجلات المتناثرة، ويوفر فواصل فاصلة أو فاصلة منقوطة أو تبويب أو أنبوب بالإضافة إلى BOM لبرنامج Excel.
حوّل السجلات إلى جدول بيانات. الصق مصفوفة من الكائنات واحصل على CSV مع صف عناوين. تتحول الكائنات المتداخلة إلى أسماء أعمدة مفصولة بالنقاط، والحقول المفقودة تصبح خلايا فارغة، والقيم التي تحتوي على الفاصل تُقتبس وفق معيار RFC 4180.
–
تحويل الشجرة إلى جدول
عدم تطابق الشكل
JSON شجرة وCSV مستطيل، لذلك يجب على أي تحويل أن يقرر ما يفعله بالأجزاء من الشجرة التي لا تتناسب. الشكل الوحيد الذي يتحول بسلاسة هو مصفوفة من الكائنات المسطحة: كل كائن يصبح صفًا وكل مفتاح يصبح عمودًا. كل شيء آخر يحتاج إلى قاعدة.
الكائنات المتداخلة هي الحالة السهلة. {"role": {"team": "core"}} يصبح عمودًا باسم role.team، مما يحافظ على إمكانية الوصول إلى القيمة وهو مفهوم لدى معظم معالجات استيراد الجداول. المصفوفات المتداخلة أصعب، لأن توسيعها سيغير عدد الصفوف ويكرر البيانات المحيطة بصمت. يحتفظ هذا المحول بها كنص JSON داخل خلية واحدة، مما يفقد إمكانية الاستعلام لكنه لا يخترع سجلات لم تكن في المصدر أبدًا.
السجلات المتناثرة وترتيب الأعمدة
JSON في العالم الحقيقي نادرًا ما يكون موحدًا. سجل واحد لديه nickname، والآخر لا؛ حقل يظهر فقط بعد تاريخ ترحيل معين. المحول الذي يأخذ أعمدة من أول كائن فقط سيسقط كل شيء آخر بصمت.
قائمة الأعمدة هنا هي اتحاد كل مفتاح عبر كل سجل، بترتيب الظهور الأول. السجلات التي ينقصها حقل تحصل على خلية فارغة بدلاً من تخطيها، بحيث يتطابق عدد الصفوف دائمًا مع طول الإدخال. يُختار ترتيب الظهور الأول بدلاً من الأبجدي لأنه يحافظ على التجميع المقصود من قبل المؤلف — يبقى id وname في المقدمة بدلاً من التشتت.
الاقتباس والفواصل وبرنامج Excel
يتطلب معيار RFC 4180 اقتباس الحقل إذا احتوى على الفاصل أو علامة اقتباس مزدوجة أو فاصل سطر، ويتم تخطي الاقتباس المضمّن بتكراره. يطبق هذا الأداة تلك القاعدة على كل خلية بما في ذلك العناوين، بحيث تنجو قيمة مثل Grace, Jr. أو عنوان متعدد الأسطر من رحلة ذهاب وإياب عبر أي محلل متوافق.
اختيار الفاصل مهم أكثر مما يبدو. في المناطق التي تكون فيها الفاصلة هي فاصل الكسور العشرية — معظم أوروبا القارية — يتوقع Excel فاصلة منقوطة وإلا سيسقط الصف بأكمله في العمود A. خيار BOM يضيف علامة ترتيب بايتات UTF-8، وهي التي تخبر Excel على ويندوز بقراءة الملف كـ UTF-8 بدلاً من صفحة الرموز القديمة؛ بدونها تصل الأسماء غير اللاتينية مشوهة. كلا الخيارين خارج المسار الافتراضي تحديدًا لأنهما يكسران أدوات أخرى، فقم بتفعيلهما فقط من أجل Excel.
الأسئلة الشائعة
ما شكل الإدخال المتوقع؟
مصفوفة من الكائنات، حيث يمثل كل كائن صفًا واحدًا. يتم قبول كائن واحد وينتج صفًا واحدًا، لكن مصفوفة من السلاسل أو الأرقام لا يمكن أن تصبح جدولًا.
كيف يتم التعامل مع الكائنات المتداخلة؟
يتم تبسيطها إلى أسماء أعمدة مفصولة بالنقاط، بحيث يصبح {"role": {"team": "core"}} عمودًا يسمى role.team. قم بإيقاف التبسيط للاحتفاظ بها كنص JSON بدلاً من ذلك.
لماذا تبقى المصفوفات المتداخلة كـ JSON؟
توسيعها سيغير عدد الصفوف ويكرر الحقول المحيطة. إبقاؤها في خلية واحدة يعني أن الإخراج يحتوي دائمًا على عدد صفوف مساوٍ لعدد سجلات الإدخال.
ماذا يحدث عندما تكون للسجلات مفاتيح مختلفة؟
صف العناوين هو اتحاد كل المفاتيح عبر كل السجلات، بترتيب الظهور الأول، وأي سجل ينقصه حقل يحصل على خلية فارغة. لا يتم تخطي أي سجل.
متى يجب استخدام خيار BOM؟
فقط لبرنامج Excel على ويندوز. علامة ترتيب البايتات تخبره بقراءة الملف كـ UTF-8؛ بدونها تتم قراءة الأحرف غير اللاتينية بشكل خاطئ. قد تظهر أدوات أخرى علامة BOM كأحرف غريبة.
لماذا يفتح ملفي في عمود واحد في Excel؟
يتبع Excel فاصل القوائم في منطقتك. في المناطق التي تستخدم الفاصلة كعلامة عشرية يتوقع فاصلة منقوطة، لذا بدّل الفاصل إلى فاصلة منقوطة وأعد الفتح.