البيانات وجداول البيانات · CSV منظف
CSV مقابل JSON: تنسيقان للبيانات والأفكار حول البنية التي تقف وراءهما
· خلفية
ملف CSV json تنسيقات البيانات
CSV يصف جدولاً؛ JSON تصف شجرة. يشرح هذا المنشور مصدر JSON، ولماذا يحمل أنواعًا وتداخلًا لا يستطيع CSV القيام به، وما يعنيه عدم التطابق في كل مرة تتحرك فيها البيانات بين الاثنين.
تبدو قائمة العملاء نفسها مختلفة تمامًا مثل CSV وJSON - لماذا يشفر كل تنسيق فكرة مختلفة عن البنية
يبدو جدول العملاء مضغوطًا في CSV لأن كل صف يستعير المعنى من رأس مشترك واحد. JSON يكرر أسماء الخصائص في كل كائن ويمكنه دمج عنوان أو قائمة أسفل العميل. وبالتالي فإن الملفين يعبران عن قدرات بنيوية مختلفة حتى عندما تتداخل حقائقهما المرئية.
ToolAcre يحول التقاطع المشترك: يصبح الرأس المسطح بالإضافة إلى صفوف البيانات مصفوفة ذات مستوى أعلى من الكائنات المسطحة. ولا يحول علامات الترقيم في الرؤوس إلى فروع أو يستنتج صفائف من الأعمدة المتكررة. إن فهم هذه الحدود يمنع المحول المسطح من الخلط بينه وبين مصمم نموذج البيانات.
CSV كشبكة - صفوف وأعمدة، والمعنى الموضعي، ولا شيء يتجاوز النص
ضمن هذا التنفيذ، CSV عبارة عن جدول مستطيل من السلاسل. يوفر الصف الأول أسماء الرؤوس وتتلقى كل خلية لاحقة المعنى من موضع العمود الخاص بها. يتم تعبئة الصفوف القصيرة ويتم التحذير من الصفوف الطويلة، لأن الموضع يعمل بشكل موثوق فقط عندما يتوافق عرض الصف مع الرأس.
لا يوجد رقم أصلي أو منطقي أو كائن أو خلايا فارغة. تحمي علامات الاقتباس بناء الجملة ولكنها لا تحدد النوع. يظل تسلسل الأرقام والكلمة صحيح قيمًا نصية، مما يحافظ على استقرار المعرفات ويطلب من المستهلك تطبيق مخطط حيث يوجد بالفعل.
في ToolAcre، CSV الخلايا عبارة عن سلاسل موضوعة تحت صف رأس واحد
يسأل المصنف عن أصل JSON وتاريخ معاييره في أوائل العقد الأول من القرن الحادي والعشرين، ولكن هذا المستودع ليس مصدرًا لتلك التواريخ أو المنشورات. السلوك الذي يمكن التحقق منه هو أن المتصفح يستخدم `JSON.parse` و`JSON.stringify`، ويقبل مصفوفة عالية المستوى من الكائنات للتحويل إلى جدول.
يتلقى JSON غير صالح خطأ تحليل محدد، ويتم رفض جذر غير مصفوفة، كما أن المصفوفات التي تحتوي على عناصر أولية غير مدعومة. إن حدود وقت التشغيل هذه تهم الزائر أكثر من التسلسل الزمني غير المستشهد به. يجب أن يأتي السياق التاريخي من المعايير الأساسية خارج مجموعة مصادر هذه المهمة.
JSON سجل المعايير خارج دليل المستودع؛ يمكن التحقق من شكل وقت التشغيل المدعوم
يحمل كائن JSON كل مفتاح بجانب قيمته، بينما تعتمد الخلية CSV على الرأس في نفس الفهرس. ToolAcre يحسب المفاتيح الواضحة مرة واحدة، ثم يعين كل صف حسب الموضع. تصبح الخلايا الممثلة المفقودة سلاسل فارغة بحيث تتشارك الكائنات في مجموعة مفاتيح ثابتة.
هذا الوصف الذاتي له حجم وتكلفة تكرار ولكنه يجعل كل سجل JSON مفهومًا دون تحديد موقع الرأس بشكل منفصل. وعلى العكس من ذلك، فإن تغيير ترتيب عمود CSV بدون رأسه يؤدي إلى تدمير المعنى. يجب أن يحافظ التحويل على الأسماء والمناصب المقترنة في جميع أنحاء الجدول.
الأشجار مقابل الجداول - التداخل والمصفوفات والمفاتيح الاختيارية، ولماذا ليس لها مكان طبيعي في الصف
يمكن أن تحتوي قيم JSON على كائنات ومصفوفات، بينما لا يمكن أن تتفرع خلية CSV واحدة بشكل أصلي. في الاتجاه المعاكس، يقوم ToolAcre بإجراء تسلسل لقيمة متداخلة باستخدام `JSON.stringify` ويضع هذا النص JSON في خلية واحدة. ولا يقوم بإنشاء أعمدة عنوان_المدينة أو صفوف علامات إضافية.
تصبح المفاتيح الاختيارية عبر سجلات JSON اتحاد الأعمدة بترتيب المشاهدة لأول مرة، مع وجود فراغات حيث يفتقر الكائن إلى مفتاح. هذا هو التسطيح الذي يمكن الدفاع عنه للأجسام المسطحة المتناثرة. فهو لا يوفر خريطة طبيعية للأشجار العشوائية، والمسار يقول ذلك بدلاً من التخمين.
مثال عملي — سجل واحد يحتوي على عنوان متداخل وقائمة من العلامات، معروضة في JSON ثم يتم فرضها في أعمدة CSV
يتم تحويل الصف CSV المسطح `id,name,city` متبوعًا بـ `001,Ada,London` بشكل واضح إلى كائن واحد بثلاث خصائص سلسلة. إذا كان JSON يحتوي بدلاً من ذلك على `address: {city: "London"}` و`tags: ["math","code"]`، فإن التحويل العكسي يكتب تلك القيم المتداخلة كسلاسل JSON ضمن أعمدة العناوين والعلامات.
يؤدي تحميل CSV مرة أخرى إلى إنتاج سلاسل تحتوي على بناء جملة JSON، وليس قيمًا متداخلة مُعاد بناؤها. يمكن لتطبيق لاحق تحليل تلك الخلايا ضمن المخطط الخاص به، لكن ToolAcre لا يفعل ذلك. تعزل المقارنة العملية بالضبط المكان الذي ينتهي فيه هيكل الجدول ويبدأ هيكل الشجرة.
مثال عملي: يتم تحويل الحقول المسطحة مباشرة، بينما يتم الاحتفاظ بـ JSON المتداخل فقط كنص خلية في الاتجاه المعاكس
JSON الخطوط ولغات المخطط وموزعي التدفق خارج نطاق التنفيذ. الإخراج عبارة عن مصفوفة ذات مسافة بادئة واحدة، وتتم قراءة إدخال الملف في الذاكرة قبل التحويل. لا تستنتج تدفق سجل بسجل من وجود عامل التحليل.
وبالمثل، لا تتحقق الأداة من صحة الخصائص المطلوبة أو النطاقات الرقمية. فهو يحمي مفاتيح الكائنات من الرؤوس الفارغة والمكررة ويبلغ عن شكل الصف، ولكن تظل الصحة الدلالية مسؤولية المستهلك. يمكن أن تكون الصيغة المسطحة صالحة بينما تكون بيانات العمل خاطئة.
تعرف على البنية التي تتجه نحوها - كيف يقوم المنظف ToolAcre CSV بتحويل البيانات الجدولية المسطحة بين CSV وJSON
تعرف على الهيكل الذي تتوقعه الوجهة. بالنسبة لعمليات التصدير المسطحة، يوفر ToolAcre جسرًا شفافًا: تصبح الرؤوس مفاتيح فريدة، وتصبح الصفوف كائنات، وتبقى القيم سلاسل. بالنسبة لنماذج التطبيقات المتداخلة، حدد التعيين بدلاً من فرض الفروع من خلال اصطلاحات تسمية الأعمدة غير المقصودة.
قم بمعاينة الجدول وحل الصفوف غير المنتظمة وفحص JSON الذي تم إنشاؤه قبل التنزيل. يكون المحول أقوى عند استخدامه ضمن التقاطع الضيق للتنسيقات. فهو لا يمحو الاختلاف المفاهيمي بينهما، ولا ينبغي لسير العمل الجدير بالثقة أن يطلب ذلك.