متوفر أيضًا بلغات أخرى: English · Español · Português · Français
تحويل CSV إلى JSON
الصق جدول CSV بأي فاصل وستحصل على JSON منظّم، مع تنبيهات دقيقة حول ما قد ينكسر في البيانات نفسها.
ما هو تحويل CSV إلى JSON؟
تحويل CSV إلى JSON يعني أخذ جدول بسيط مفصول بفواصل — من تصدير Excel أو Google Sheets أو قاعدة بيانات — وتحويله إلى بنية JSON التي تفهمها كل واجهة برمجة تطبيقات وكل سكربت تقريبًا. الصف الأول عادة يحمل أسماء الأعمدة، وكل صف بعده يصبح كائنًا واحدًا في مصفوفة، ومفاتيح ذلك الكائن هي عناوين الأعمدة نفسها. هذه الأداة تفعل ذلك بالكامل داخل متصفحك: تلصق النص فتظهر النتيجة فورًا، بلا رفع ملف ولا انتظار خادم.
محدِّد الفاصل يبدأ على القيمة التي اكتُشفت تلقائيًا من النص الملصق، لكن يمكنك تغييره يدويًا إلى فاصلة منقوطة أو جدولة أو شرطة عمودية إن كان الملف بلهجة مختلفة. مربع «الصف الأول عناوين» مفعّل افتراضيًا لأن أغلب ملفات CSV الحقيقية تُبنى هكذا، ومربع «تحويل الأرقام والقيم المنطقية» متروك معطّلًا لأن تحويل النصوص إلى أرقام قرار له تبعات. وتحت الناتج تظهر عدد الصفوف والأعمدة، إلى جانب أي تحذير عن صف ناقص الحقول أو علامة اقتباس لم تُغلق أو رقم لا يستطيع JavaScript حفظه دون تغيير.
كيفية الاستخدام
- الصق CSV انسخ الجدول من Excel أو Google Sheets أو أي ملف نصي والصقه في الحقل الأول؛ ستكتشف الأداة الفاصل تلقائيًا.
- اضبط الخيارات تحقّق من الفاصل المكتشَف، وفعّل «تحويل الأرقام والقيم المنطقية» إن كنت تريد أرقام JSON حقيقية لا نصوصًا، واختر المسافة البادئة التي تناسبك.
- انسخ JSON راجع عدد الصفوف والأعمدة والتنبيهات أسفل النتيجة، ثم اضغط زر النسخ لتأخذ الناتج جاهزًا.
لماذا تحليل CSV أصعب مما يبدو؟
لا يوجد معيار لصيغة CSV. وثيقة RFC 4180 نُشرت عام 2005 وصفًا لما كان الناس يفعلونه أصلًا في جداول البيانات، لا مواصفة مُلزِمة لأحد، ولهذا فكل ملف CSV حقيقي تخمينٌ لأي لهجة أنتجته. جزء كبير من أوروبا يستعمل الفاصلة المنقوطة فاصلًا للحقول، لأن الفاصلة عندهم هي الفاصل العشري للأرقام، والجدولة والشرطة العمودية شائعتان أيضًا في تصديرات أخرى. ولهذا السبب بالذات جُعل الفاصل خيارًا تختاره أو تراجعه، لا افتراضًا واحدًا مفروضًا على كل ملف.
المحلِّل في هذه الأداة آلة حالات تقرأ حرفًا حرفًا، لا دالة تقسيم على الفاصلة وسطر النص كما يفعل أي محلّل مكتوب في سطر واحد. فهذا النوع الساذج يفسد أي ملف فيه عنوان يحوي فاصلة داخل اقتباس، أو حقل نصي عبر عدة أسطر، أو علامة اقتباس داخل نص مقتبس. وقد تحقّقنا من ذلك: حقل مقتبس بداخله فاصلة يبقى حقلًا واحدًا، وسطر جديد داخل الاقتباس لا يشطر الصف إلى صفين، وعلامة الاقتباس المضاعفة تخرج علامة اقتباس حقيقية في القيمة. وقُورن الناتج بمكتبة Papa Parse المعروفة على 18 مستندًا اختباريًا وتطابقت جميعها، وعلى 2000 جدول عشوائي كُتب وقُرئ ذهابًا وإيابًا فعاد مطابقًا في كل مرة.
اكتشاف الفاصل تلقائيًا يجري بالاتساق عبر الصفوف لا بعدّ التكرار في السطر الأول. فعدّ المرات كان سيختار الفاصلة خطأً حين تسكن واحدة منها داخل حقل مقتبس، بينما الفاصل الحقيقي شيء آخر؛ وهذه الأداة تنظر إلى ثبات عدد الحقول عبر عدة صفوف فتصيب في هذه الحالة تحديدًا.
ومشكلة الأرقام هي الأهم عمليًا، وملفات جداول البيانات المصدَّرة مليئة بها. قيم كثيرة تبدو أرقامًا وليست كذلك فعليًا: 007 رمز بريدي أو رقم طلب سيصير 7 إن حُوّل، ورقم الهاتف بمقدمته ليس عملية حسابية، والنقطة الأخيرة وحدها ليست قيمة JSON صالحة. ولهذا كان تفعيل التحويل اختياريًا، وحتى حين يُفعَّل لا تحوّل الأداة إلا القيم المكتوبة تمامًا كما يكتب JSON أرقامه. والأخطر أن تحليل المعرّف 12345678901234567890 بمحلّل JSON في المتصفح يعيد 12345678901234567000، لأن double يحفظ نحو 17 رقمًا معنويًا فقط، فتُستبدل الأرقام الأربعة الأخيرة في صمت تام. هذه الأداة تحتفظ بالأرقام كما كُتبت من أول الطريق إلى آخره فينجو المعرّف سليمًا، وتنبّهك إلى ذلك لتعرف أن البرنامج التالي الذي يلمس هذه البيانات قد لا يكون بالحرص نفسه.
حدود لا تُخفى
صيغة CSV نفسها عاجزة عن تمثيل أمرين، وقد تحقّقنا من ذلك بالتجربة لا بالافتراض. الصف الأخير الفارغ في جدول لا يمكن تمييزه عن مجرد سطر جديد زائد في نهاية الملف، والحقل الفارغ لا يمكن تمييزه بثقة عن نص فارغ كُتب بين علامتي اقتباس. فالرحلة ذهابًا وإيابًا ليست أمينة دائمًا مهما بلغت دقة الأداة، وأي أداة تدّعي عكس ذلك فهي تخمّن لا تضمن.
وللاقتباس المشوّه لا جواب صحيح واحد. فـRFC 4180 لا تسمح أصلًا بأن تُغلق علامة اقتباس في منتصف حقل، ومحلِّلات CSV المختلفة تتصرف عند ذلك بطرق متباينة: تُنهي هذه الأداة الجزء المقتبس عند أول علامة إغلاق فتُخرج ثلاثة حقول، بينما تحقّقنا أن Papa Parse يواصل القراءة فيُخرج حقلين للسطر نفسه. والأداة توثّق اختيارها بدل أن تدّعي وجود سلوك معياري متفق عليه لا وجود له.
وحين يُفتح الملف الأصلي في Excel أو Google Sheets، يعيد ذلك البرنامج تفسير بعض القيم بطريقته الخاصة، وهذا يحدث بعد أن ينتهي عمل هذه الأداة تمامًا. وتحويل نص إلى رقم قرار متروك لك أنت لا للأداة: المربع معطّل افتراضيًا لهذا السبب بالذات، فأنت أعلم برمز بريدك ورقم طلبك من أي تخمين تلقائي. والاتجاه المعاكس متاح في تحويل JSON إلى CSV.
لماذا هي مجانية؟
هذه الأداة مجانية لأنها تعمل بالكامل على جهازك: بلا حساب تُنشئه، وبلا علامة مائية تُضاف، وبلا رفع ملف إلى أي خادم. هذا يعني عمليًا أن ملف تصدير عملاء أو نسخة من قاعدة بيانات تحوي أرقام هواتف ومعرّفات لا يغادر جهازك أبدًا أثناء التحويل. ولأن كل شيء يجري في المتصفح، فسرعة التحويل لا تعتمد على اتصال الشبكة.