لماذا تختلف هذه الصفحة عن أدوات التحويل الأخرى
عند تحويل CSV إلى JSON، تظهر ثلاث خصائص فارقة تجعل هذه الأداة مختلفة عن أدوات تحويل التنسيقات الأخرى في الموقع: غياب الأنواع في المصدر، استحالة التدرج الهرمي، وحساسية الفاصل.
غياب أنواع البيانات في المصدر – CSV يخزّن كل شيء كنص مسطح. الحقول الرقمية (أسعار، كميات) والتواريخ ورموز البريد التي تبدأ بصفر تصل كلها كسلاسل نصية. لا تحاول الأداة تخمين ما إذا كان "00123" رقمًا أم رمزًا بريديًا. كل قيمة تبقى نصًا في JSON الناتج، ما لم تقم أنت يدويًا بتحويلها بعد التحميل. هذا يختلف عن تحويل JSON إلى CSV حيث يتوجب على الأداة التعامل مع القيم boolean و null والأرقام.
لا تدرج هرمي ممكن – CSV جدول مسطح بصفوف وأعمدة ثابتة. الناتج هو مصفوفة من كائنات مسطحة، كل كائن له نفس المفاتيح. لا يمكن إنشاء JSON متداخل (كائنات داخل كائنات) من CSV بدون قواعد إضافية لا تطبقها هذه الأداة. لو كنت تريد هيكلًا هرميًا، ستحتاج إلى معالجة لاحقة.
الفاصل مهم – عليك تحديد الفاصل المستخدم في ملف CSV: فاصلة , أو فاصلة منقوطة ; أو تبويب Tab. صفحات التحويل من JSON أو Excel لا تطلب هذه المعلومة. اختيار الفاصل الخطأ يؤدي إلى فشل التحليل.
الفواصل المضمنة وفواصل الأسطر هشة – قواعد الاقتباس في CSV ليست مطبقة عالميًا. الفواصل المضمنة داخل الحقول المقتبسة، وفواصل الأسطر داخل الخلايا، والاقتباسات غير المهربة هي مصادر شائعة لفشل التحليل، وتؤثر على تحويل CSV أكثر من تحويلات التنسيقات الأخرى.
المدخلات والمخرجات وخيارات المستخدم
الأداة تستقبل ملفًا واحدًا بتنسيق CSV (أو JSON أو XLSX، لكن السيناريو الرئيسي هو CSV إلى JSON). تكتشف الأداة التنسيق تلقائيًا.
يحتاج المستخدم إلى:
- اختيار ملف من جهازه
- تعيين تنسيق الإخراج إلى "JSON"
- تحديد الفاصل (فاصلة، فاصلة منقوطة، تبويب) فقط إذا كان الإدخال CSV
الناتج هو ملف JSON. تعرض الأداة معاينة للبيانات المحولة، وعدد الصفوف والأعمدة في الجدول، وحجم ملف الإخراج. تحميل الملف يتم بنقرة واحدة.
كل شيء يعمل في المتصفح – لا يتم رفع أي بيانات إلى خادم. هذا يعني أن المعلومات الحساسة (جهات اتصال، قوائم أسعار) تبقى محليًا.
قواعد التحويل والحالات الحدية
-
تفسير الخلايا الفارغة: الخلية الفارغة في CSV تصبح قيمة نصية فارغة
""في JSON، وليسnull. إذا كنت تريدnull، ستحتاج إلى معالجة لاحقة. -
لا صيغ ولا تنسيق: CSV لا يحتوي على صيغ حسابية أو تنسيق خلايا، لذا لا تُجرى أي عمليات.
-
فشل تحليل CSV: إذا تعذر تحليل الملف (بسبب أخطاء الاقتباس أو عدم اتساق عدد الأعمدة)، تظهر الرسالة:
"This CSV could not be parsed." -
لا صفوف بيانات: إذا كان الملف لا يحتوي على صفوف بيانات (فقط رأس جدول أو فارغ)، تظهر الرسالة:
"This file has no table rows." -
تجاوز الحدود:
"This table has more than ‹max› rows.""This table has more than ‹max› columns.""This file is too large. Use a file under ‹max›."
-
خطأ في اختيار الملف:
- إذا لم يختر المستخدم ملفًا:
"Choose one file first." - إذا كان نوع الملف خاطئًا:
"Choose a CSV, JSON or XLSX file."
- إذا لم يختر المستخدم ملفًا:
-
مهلة التحويل: إذا استغرق التحويل وقتًا طويلاً:
"This conversion is taking too long. Try a smaller file." -
الأصفار البادئة: محفوظة دائمًا لأن كل حقل يُعامَل كنص. لو قمت بتحميل JSON إلى بيئة تقوم بالتحويل التلقائي للأنواع (مثل JavaScript
JSON.parse)، فقد تُفقد الأصفار. هنا، تبقى كما هي. -
أسطر جديدة داخل الحقول المقتبسة: يتم الحفاظ عليها كـ
\nفي القيم النصية لـ JSON.
زوايا تقنية معمقة
1. أنواع البيانات: النص مقابل القيم المكتوبة
CSV يفتقر إلى نظام أنواع. كل شيء يُقرأ كسلسلة. JSON من ناحية أخرى يدعم الأرقام (123)، القيم المنطقية (true, false)، القيم الخالية (null)، والكائنات المتداخلة. ولكن الأداة لا تحاول تخمين أي نوع مقصود. إذا كان لديك عمود "السعر" بقيمة 12.50، فسيكون في JSON "12.50" (نص) وليس 12.50 (رقم). هذا يمكن أن يسبب مشاكل عند استخدام JSON في واجهات برمجة التطبيقات التي تتوقع أرقامًا. الحل: استخدم دالة تحويل الأرقام بعد التحميل، أو عدّل في المعاينة قبل التنزيل (إذا كانت الأداة توفر ذلك – لكنها لا توفر، حسب صحيفة المعلومات).
2. الأصفار البادئة وسلامة البيانات
ملفات CSV من قواعد البيانات غالبًا تحافظ على الأصفار البادئة في رموز البريد أو أرقام الهواتف. إذا حاولت أداة تحويل تحويل تلك القيم إلى أرقام، فسيتم حذف الأصفار. هذه الأداة تتعامل معها كنص، لذا "00123" تبقى "00123". هذا أمر بالغ الأهمية لمن يعملون مع بيانات عناوين أو أكواد منتجات.
3. تحديد الفاصل والمشكلات الشائعة
العديد من ملفات CSV التي تصدر من أنظمة ERP أو قواعد البيانات القديمة تستخدم فاصلة منقوطة بدلاً من الفاصلة، خاصة في الأنظمة الأوروبية حيث الفاصلة هي العلامة العشرية. اختيار الفاصل الخاطئ سيؤدي إلى تحليل كل صف كخلية واحدة، وسيكون الناتج كائنًا واحدًا بمفتاح واحد طويل.
أيضًا، بعض الملفات تحتوي على مزيج من الفواصل والاقتباسات. على سبيل المثال:
"الاسم", "المدينة", "ملاحظات"
"أحمد", "الرياض", "هو قال: ""مرحبًا"", ثم غادر"
هذا صحيح حسب RFC 4180 (الاقتباس المزدوج للهروب). لكن إذا كان الملف لا يستخدم الاقتباس بشكل صحيح، فسيفشل التحليل.
4. الخصوصية: المعالجة من جانب العميل
جميع التحويلات تتم في المتصفح، دون رفع الملف إلى خادم. هذا يعني أنه يمكنك تحويل ملفات تحتوي على معلومات حساسة (مثل قوائم العملاء، البيانات المالية، السجلات الطبية) دون القلق من تسربها عبر الشبكة. هذه ميزة هامة مقارنة بالخدمات السحابية التي تتطلب تحميل الملف إلى خادم خارجي.
حالات الاستخدام الرئيسية
- مطور يستلم تصدير CSV من قاعدة بيانات ويحتاج إلى إدخال البيانات في تطبيق JavaScript أو API يقرأ JSON – هذا هو السيناريو الأكثر شيوعًا. الأداة تقدم حلًا فوريًا بدون برمجة.
- محلل بيانات يحول ملف CSV قديم لعناوين (مع رموز بريدية بصفر بادئ) إلى JSON مع الحفاظ على الأصفار – الوظائف التقليدية للتحويل في Excel قد تحول الرمز "00501" إلى الرقم 501. هذه الأداة تحافظ على الصفر.
- فريق يشارك بيانات بين زميل غير تقني يستخدم Excel وزميل تقني يحتاج JSON – يمكن للفريق استخدام الأداة لنقل القوائم دون رفعها إلى الإنترنت، والحفاظ على الخصوصية.
- طالب أو باحث يحول بيانات جدولية إلى JSON لمهمة برمجية – تغني الأداة عن كتابة سكريبت تحويل بسيط.
مقارنة مع التحويل العكسي (JSON → CSV)
تحويل CSV إلى JSON أبسط من التحويل العكسي. السبب: عندما تحول JSON إلى CSV، تحتاج إلى تسوية الكائنات المتداخلة (flattening) لأن CSV لا يدعم الهياكل الهرمية. هنا، لا توجد حاجة للتسوية لأن CSV مسطح أصلاً. أيضًا، في الاتجاه العكسي يجب التعامل مع أنواع JSON (أرقام، قيم منطقية، null) وتحويلها إلى تمثيلات نصية. في CSV إلى JSON، جميع القيم تبدأ كنص، لذا لا يوجد تحويل نوع (إلا إذا أردت تحويلها يدويًا لاحقًا). هذا يعني أن الأداة أبسط وأقل عرضة للأخطاء.
الأسئلة الشائعة
1. لماذا تظهر قيمي الرقمية كسلاسل نصية في JSON؟
لأن CSV لا يحتوي على معلومات عن أنواع البيانات. الأداة تتعامل مع كل حقل كنص للحفاظ على الأصفار البادئة والتفاصيل الأخرى التي قد تُفقد إذا تم تحويلها رقميًا. يمكنك تحويل الأرقام يدويًا بعد التحميل باستخدام Number() أو parseFloat() في JavaScript.
2. ماذا أفعل إذا كان ملف CSV يحتوي على فواصل ضمنية لكنها غير مقتبسة بشكل صحيح؟
إذا كان الملف لا يتبع قواعد RFC 4180 (الاقتباس المزدوج للهروب)، فقد يفشل التحليل. حاول إصلاح الملف في محرر نصوص قبل الرفع: ضع علامات اقتباس حول الحقول التي تحتوي على فواصل، واستخدم علامتي اقتباس "" لتمثيل اقتباس واحد داخل الحقل. بدلاً من ذلك، يمكنك استخدام فاصل مختلف مثل التبويب (إذا لم تظهر الفواصل في البيانات).
3. هل يمكنني تحويل ملف CSV إلى JSON متداخل (nested)؟
لا، هذه الأداة تنتج JSON مسطحًا (مصفوفة من كائنات بسيطة). لإنشاء هياكل متداخلة، ستحتاج إلى معالجة إضافية باستخدام برنامج مثل jq أو كتابة سكريبت بلغة برمجة.
4. ماذا يعني "الحد الأقصى للصفوف" و"الحد الأقصى للأعمدة"؟
إذا تجاوز ملفك الحد المسموح به لعدد الصفوف أو الأعمدة، ستتلقى رسالة خطأ. الحدود مذكورة في شروط الخدمة (غير محددة في صحيفة المعلومات هنا، لكن الأداة تعرض قيمة ‹max›). قلّل عدد الصفوف عن طريق حذف الصفوف الزائدة، أو استخدم ملفًا أصغر.
5. لماذا تظهر رسالة "This CSV could not be parsed" رغم أن الملف يبدو صالحًا؟
قد يكون السبب: وجود أقواس غير متطابقة، عدد أعمدة غير منتظم بين الصفوف، أو وجود حروف غير UTF-8. جرب فتح الملف في محرر نصوص وفحص أول 10 صفوف بحثًا عن اقتباسات غير معلقة أو أسطر فارغة. تأكد أيضًا من أن الفاصل الذي اخترته يطابق الفاصل الفعلي.
6. هل تحافظ الأداة على المحارف العربية (UTF-8)؟
نعم، تعالج الأداة ملفات CSV بترميز UTF-8 افتراضيًا. إذا كان ملفك بترميز ANSI أو Windows-1256، فقد تظهر المحارف بشكل خاطئ. قم بتحويل الملف إلى UTF-8 باستخدام محرر نصوص قبل الرفع. الأداة لا تقدم خيار تحديد الترميز.
هذه الصفحة تقدم حلاً مباشرًا لمهمة محددة: تحويل جدول CSV إلى JSON مسطح مع الحفاظ على كل قيمة كنص، وتجنب التفسير التلقائي للأنواع، مع معالجة محلية تحمي الخصوصية. المفتاح هو فهم الفروقات الثلاثة الجوهرية التي تجعلها مختلفة عن أدوات التحويل الأخرى في الموقع.