العربية

البيانات وجداول البيانات · CSV منظف

التحويل بين CSV وJSON: الأشكال والأنواع وما يتم فقدانه

· كيف يعمل

ملف CSV json تنسيقات البيانات

تصبح شبكة CSV مستطيلة الشكل صفًا من كائنات JSON المسطحة بينما تظل كل قيمة نصًا
الرسم التوضيحي المتجه الأصلي ToolAcre

CSV عبارة عن نص ثابت وJSON عبارة عن بيانات متداخلة ومكتوبة، لذا فإن التحويل بينهما يتضمن اتخاذ قرارات. يشرح هذا المنشور أشكال JSON الشائعة للبيانات الجدولية، وكيفية استنتاج الأنواع من عدمها، وما الذي لا يمكنه البقاء على قيد الحياة ذهابًا وإيابًا.

API يريد JSON، والتصدير هو CSV، وكل رقم يصل كسلسلة - لماذا يختلف التنسيقان حول الأنواع

يمكن أن تظهر عملية تصدير جدول البيانات 42 دون تحديد ما إذا كانت هذه الأحرف تعني عددًا أو رمز منتج أو معرفًا. يمكن لـ JSON التمييز بين رقم وسلسلة، لكن المصدر CSV لا يمكنه توفير هذا التمييز. لذلك يختار ToolAcre التمثيل المحافظ: تصبح كل خلية عبارة عن سلسلة JSON، بما في ذلك الأرقام والكلمات ذات المظهر الحقيقي والخلايا الفارغة.

يحافظ هذا القرار على نص مثل 0012 كما هو ويجعل التحويل قابلاً للتنبؤ به من أجل تكامل API. وهذا يعني أيضًا أن التعليمات البرمجية النهائية يجب أن تقوم بإدراج الحقول ضمن مخططها الخاص قبل إجراء العمليات الحسابية. إن معالجة الملف الذي تم إنشاؤه كما هو مكتوب بالفعل يؤدي فقط إلى نقل الافتراض من المحول إلى رمز التطبيق الأقل وضوحًا.

الشكل المستهدف المعتاد - مجموعة من الكائنات المرتبطة بالرأس، ولماذا يجب أن تكون الرؤوس نظيفة وفريدة من نوعها

ينتج عن المسار مصفوفة ذات مستوى أعلى تحتوي على كائن واحد لكل صف بيانات. تصبح خلايا الرأس مفاتيح كائنات، ويتم أخذ القيم من نفس مواضع الأعمدة. يصبح الرأس الثالث الفارغ column_3، بينما يصبح الرأس الثاني المسمى id id_2 بدلاً من الكتابة فوق حقل المعرف الأول.

تعتبر الأسماء الواضحة والفريدة مفيدة، لكن المحول لا يستخدم الأحرف الصغيرة أو يترجم أو يستبدل المسافات. فهو يقوم بقص الرأس فقط أثناء حساب المفتاح، ثم يخترع اسمًا موضعيًا أو لاحقة رقمية عند الحاجة. إذا كان API يتطلب عنوان البريد الإلكتروني للعميل بدلاً من البريد الإلكتروني للعميل، فأعد تسمية هذا العمود عمدًا قبل الاعتماد على عقد الإخراج.

الأشكال البديلة - مجموعة من المصفوفات والكائنات الموجهة نحو الأعمدة، ومتى يكون كل منها مناسبًا بشكل أفضل

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

يزيل هذا الاختيار الضيق الغموض حول المكان الذي يوجد فيه اسم العمود ويحافظ على شكل كل سجل على حد سواء. إذا كان مستهلك آخر يتوقع المصفوفات، فقم بتحويل JSON الذي تم تنزيله إلى مخطط ذلك المستهلك. إن المطالبة بأن ToolAcre يختار من بين عدة تخطيطات من شأنه أن يصف عناصر التحكم والفروع غير الموجودة في التكوين أو رمز اللوحة.

يُصدر هذا المحول شكلًا واحدًا: مجموعة عالية المستوى من الكائنات المسطحة

لا يحدث أي نوع من التخمين. يصبح النص CSV 42 "42"، ويصبح "خطأ" "خطأ"، ويصبح الفراغ "" بدلاً من أن يكون خاليًا. وهذا واضح في سجل الأداة وتنفيذها، والتي تقوم بتعيين الخلايا مباشرة إلى خصائص السلسلة. لا يقوم المسار بفحص عمود ويقرر أن كافة القيم غير الفارغة رقمية.

يؤدي الاحتفاظ بالسلاسل أيضًا إلى فصل هذه المقالة عن المناقشة المنشورة لتطبيقات جداول البيانات التي تغير الأصفار البادئة والتواريخ والمعرفات الطويلة. النقطة هنا هي العقد الفعلي للمحول: فهو يتجنب هذا النوع من الإكراه. يظل المستهلكون مسؤولين عن تحليل الكميات المعروفة وترك المعرفات دون تغيير.

يتم الاحتفاظ بالأنواع كنص؛ لا يؤدي ToolAcre إلى أي استنتاج

في الاتجاه المعاكس، يقبل ToolAcre مصفوفة JSON ذات المستوى الأعلى والتي تكون عناصرها كائنات. فهو ينشئ أعمدة من اتحاد المفاتيح عبر كل كائن، بترتيب المشاهدة لأول مرة، لذلك لا يتم فقدان الحقل الذي تم تقديمه بواسطة سجل لاحق. تصبح الخصائص المفقودة والخالية وغير المحددة CSV خلايا فارغة.

يتم إجراء تسلسل للكائن أو المصفوفة المخزنة داخل إحدى الخصائص كنص JSON داخل تلك الخلية الواحدة. يحافظ هذا على التمثيل النصي ولكنه لا يحول البنية المتداخلة إلى أعمدة أو صفوف إضافية. يتم رفض الجذر غير المصفوفي والمصفوفة التي تحتوي على قيم أولية نظرًا لعدم تطابق أي منهما مع نموذج الجدول الذي يدعمه هذا المسار.

JSON-to-CSV يقبل مصفوفة من الكائنات ويكتب القيم المتداخلة كنص JSON

خذ بعين الاعتبار الاسم،النشط،العد متبوعًا بـ Ada،صحيح،007. النتيجة JSON هي مصفوفة تحتوي على كائن بالاسم "Ada" والنشط "true" والعدد "007". يؤدي تحويل مصفوفة الكائنات المسطحة مرة أخرى إلى إنتاج نفس الخلايا النصية الثلاثة لأنه لم يتم إزالة أي استنتاج للنوع من الأصفار أو تحويل الكلمة ذات المظهر المنطقي.

أضف الآن رأسًا فارغًا قبل قيمة أخرى. يصبح المفتاح JSON هو column_4، لذا تظل البيانات قابلة للوصول حتى لو كان اسم المصدر مفقودًا. ومع ذلك، أضف خلية إضافية تتجاوز عرض الرأس، وسيحذر المُحمل من وجود صف متعرج؛ هذه الخلية الفائضة لا تحتوي على مفتاح وهي غائبة عن JSON.

ما لا يغطيه هذا - JSON المتداخلة بعمق، والتحقق من صحة المخطط وتدفق مستندات JSON الكبيرة جدًا

المسار ليس مدققًا للمخطط، أو أداة تسوية متكررة، أو معالج دفق JSON. يقبل شكلاً واحدًا موثقًا ويبلغ عن JSON غير صالح أو جذور غير مدعومة مع وجود خطأ محدد. تحتاج السجلات المتداخلة بعمق إلى تعيين مصمم حول مجالها بدلاً من الوعد التلقائي بأن علامات الترقيم في المفتاح تنشئ بنية.

يسمح فحص ملف الإدخال بالملفات التي تصل إلى 50 MB، ويتم تحليل CSV في العامل. هذه الحقائق لا تثبت التدفق: لا يزال نص الملف والصفوف المكتملة تتحقق للتحويل. بالنسبة إلى عمليات سير عمل JSON الكبيرة جدًا، استخدم نظامًا يوثق تنفيذه بشكل واضح التحليل التزايدي بدلاً من استنتاجه هنا.

التحقق من صحة المخطط والمصفوفات البدائية والجذور غير المصفوفية تقع خارج الشكل المقبول

التحويل عبارة عن مجموعة مرئية من الاختيارات: الصف الأول كمفاتيح، والكائنات المسطحة كسجلات، والسلاسل كقيم. ToolAcre يجعل هذه الاختيارات مستقرة بدلاً من التخمين من العينة. تتلقى الرؤوس الفارغة والمتكررة مفاتيح حتمية، في حين تظهر المدخلات الممزقة قبل أن تختفي القيمة الفائضة غير المسماة دون أن يلاحظها أحد.

استخدم المعاينة لتأكيد شكل المحدد والصف، وحل التحذيرات، ثم قم بتنزيل أو نسخ JSON. الملف الناتج مناسب للتعليمات البرمجية التي تعرف مخططها الخاص. إنه ليس بديلاً عن ذلك المخطط عن قصد، كما أن تقييده هو ما يحمي المعرفات النصية أثناء تغيير التنسيق.