متوفر أيضًا بلغات أخرى: English · Español · Português · Français
تحويل JSON إلى CSV
الصق مصفوفة JSON وستحصل على جدول CSV منظّم، مع تحييد تلقائي لأي صيغة خطرة قبل أن تصل إلى Excel.
ما هو تحويل JSON إلى CSV؟
تحويل JSON إلى CSV يعني أخذ مصفوفة من الكائنات — استجابة واجهة برمجة تطبيقات أو تصدير قاعدة بيانات بصيغة JSON — وتسطيحها إلى جدول صفوف وأعمدة يفتحه Excel أو Google Sheets مباشرة. كل عنصر في المصفوفة يصبح صفًا واحدًا، واتحاد مفاتيح كل الكائنات يصبح عناوين الأعمدة. هذه الأداة تنجز ذلك بالكامل داخل متصفحك دون أن يغادر النص جهازك، وتعرض الناتج فور اللصق.
مربع «تسطيح الكائنات المتداخلة» مفعّل افتراضيًا فيحوّل كائنًا متداخلًا إلى عمود باسم مثل user.name بدل عمود يحمل نص JSON خام. ومربع «تحييد صيغ جداول البيانات» مفعّل افتراضيًا أيضًا لسبب أمني حقيقي سيأتي شرحه، ومحدِّد الفاصل ومحدِّد نهاية السطر بين LF وCRLF يتيحان لك مطابقة توقعات البرنامج الذي سيفتح الملف. وتحت الناتج تظهر أعداد الصفوف والأعمدة وعدد القيم التي حُيّدت فعليًا.
كيفية الاستخدام
- الصق JSON انسخ مصفوفة الكائنات من استجابة API أو ملف تصدير والصقها في الحقل الأول.
- راجع التسطيح والتحييد اترك «تسطيح الكائنات المتداخلة» و«تحييد صيغ جداول البيانات» مفعّلين ما لم يكن لديك سبب لتعطيلهما، واختر الفاصل ونهاية السطر.
- انسخ CSV تحقق من عدد الصفوف والأعمدة وعدد القيم المحيَّدة، ثم انسخ الناتج لفتحه في أي برنامج جداول بيانات.
ما الذي يجب تقريره عند تحويل JSON إلى جدول؟
سجلات JSON لا تلتزم ببنية ثابتة كما يفعل جدول قاعدة بيانات، فقد يحمل سجل حقلًا لا يحمله سجل آخر. لهذا تُبنى أعمدة الجدول من اتحاد مفاتيح كل السجلات مجتمعة بترتيب ظهورها الأول، لا من مفاتيح السجل الأول وحده. والسجل الذي ينقصه حقل معين يترك خلية فارغة في مكانها الصحيح بدل أن تُزاح بقية قيمه صفًا واحدًا، وهذا فرق جوهري بين تحويل سليم وتحويل يبدو سليمًا على الشاشة فقط.
الكائنات المتداخلة تُسطَّح بمفاتيح تفصل بينها نقاط، فحقل داخل كائن آخر يصبح عمودًا باسم مركّب، وهكذا مهما زاد عمق التداخل. أما المصفوفات والكائنات التي تبقى بعد التسطيح فتُكتب كنص JSON كاملًا داخل الخلية نفسها بدل أن تُقتطع أو تُفقَد، وهذا لا يُضيّع أي معلومة ويمكن عكسه لاحقًا بإعادة تحليل تلك الخلية. وقواعد الاقتباس تتبع المنطق نفسه المستعمل عند القراءة: أي قيمة تحوي الفاصل المختار أو علامة اقتباس أو سطرًا جديدًا تُحاط بعلامتي اقتباس، وأي علامة اقتباس داخلها تُضاعف. وقد اختُبر ذلك في الاتجاهين: 2000 جدول عشوائي كُتب بنظام الاقتباس هذا ثم أُعيدت قراءته، فعاد مطابقًا في كل مرة.
وحقن الصيغ في جداول البيانات هجوم حقيقي موثّق لا افتراض نظري. الخلية التي تبدأ قيمتها بعلامة يساوٍ أو زائد أو ناقص أو @ تُنفَّذ صيغةً بمجرد أن يفتح Excel أو Google Sheets الملف، لا حين يُكتب فقط. وإن كانت هذه القيمة آتية أصلًا من نموذج ملأه شخص آخر — عميل أو مستخدم مجهول — فهذا فعليًا تنفيذ شفرة غريبة على جهاز من يفتح الملف. لهذا تسبق الأداة كل قيمة من هذا النوع بفاصلة عليا تحيّدها إلى نص عادي، وهذا الخيار مفعّل افتراضيًا وتعدّ الأداة كم قيمة غيّرتها فعليًا، ويمكنك تعطيله إن كنت تثق تمامًا بمصدر البيانات.
حدود لا تُخفى
صيغة CSV عاجزة أصلًا عن تمثيل أمرين، وهذا ليس عيبًا في هذه الأداة بل في الصيغة نفسها. لا سبيل لتمييز صف أخير فارغ حقًا عن مجرد سطر جديد زائد في ذيل الملف، ولا سبيل لتمييز حقل فارغ بثقة عن نص فارغ كُتب عمدًا بين علامتي اقتباس. فحين يُصدَّر JSON إلى CSV ثم يُعاد تحليله لاحقًا، بعض التفاصيل الدقيقة قد لا تعود بالضبط كما كانت.
وحين يُقرأ هذا الملف لاحقًا ببرنامج آخر، فاعلم أن الاقتباس المشوّه في أي CSV لا جواب صحيح واحد له بين البرامج المختلفة. فقارئ CSV إلى JSON في هذا الموقع وPapa Parse لا يُخرجان العدد نفسه من الحقول في تلك الحالة الشاذة. والملف الذي تكتبه هذه الأداة موثّق الاقتباس كي يتفادى الحالة من الأساس، لكن أي CSV آخر يصلك من مصدر مجهول قد لا يكون بالحظ نفسه.
وحين تفتح ملف CSV الناتج في Excel أو Google Sheets، فذلك البرنامج — لا هذه الأداة — من يقرر كيف يعرض كل قيمة: رقم هاتف قد يُقصّ صفره الأول، وسلسلة أرقام طويلة قد تتحول إلى ترميز علمي على الشاشة رغم أنها كُتبت نصًا كاملًا في الملف. هذا التفسير يحدث في لحظة الفتح، بعد أن تنتهي هذه الأداة من عملها.
لماذا هي مجانية؟
هذه الأداة مجانية لأنها تعمل بالكامل على جهازك، بلا حساب وبلا علامة مائية وبلا رفع أي ملف إلى خادم. استجابة API تحوي بيانات عملاء أو نسخة كاملة من جدول قاعدة بيانات تبقى على جهازك من اللحظة التي تلصقها إلى اللحظة التي تنسخ فيها الناتج. ولأن التحييد ضد حقن الصيغ يجري محليًا أيضًا، فلا حاجة لإرسال البيانات إلى أي طرف ثالث لتفحصها قبل فتحها في جدول بيانات.