بيانات · مدة القراءة: 3 د ·

من JSON إلى CSV دون فقدان أي حقل

مفاتيح متداخلة وحقول اختيارية وفواصل داخل النصوص: كيف يحوّل 4Dev ملف JSON غير المرتب إلى CSV جاهز لجدول البيانات.

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

لكل مفتاح عمود

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

[{"id":1,"name":"Ada"},
 {"id":2,"name":"Alan","note":"optional"}]

id,name,note
1,Ada,
2,Alan,optional

الكائنات المتداخلة تصبح أعمدة بشرطة سفلية

تُسطَّح الكائنات بوصل مفاتيحها بشرطة سفلية، فيصبح {"address":{"city":"Lisbon"}} عمودًا اسمه address_city. وتوضع مصفوفة القيم البسيطة في خلية واحدة ("admin, dev")، وتُحفظ مصفوفة الكائنات نصَّ JSON في خليتها، فلا يُهمَل شيء.

تهريب الفواصل وعلامات الاقتباس تلقائيًا

أي قيمة تحتوي على فاصلة أو علامة اقتباس مزدوجة أو سطر جديد تُحاط بعلامتي اقتباس مزدوجتين، وتُضاعَف علامات الاقتباس الداخلية. هذه هي قاعدة CSV القياسية التي يتوقعها Excel وجداول بيانات Google.

2,"Alan, T.","says ""hi"""

فتح ملف CSV في Excel

ليس لملف CSV إعدادات خاصة به، لذا يخمّن Excel. يتعطل شيئان كثيرًا. في البلدان التي تستخدم الفاصلة فاصلًا عشريًا، يتوقع Excel فاصلة منقوطة بين الأعمدة وقد يضع صفًا كاملًا في خلية واحدة. كما قد تتحول العربية والعبرية والحروف المشكولة والرموز التعبيرية إلى رموز غريبة إذا فُتح الملف بترميز محلي بدل UTF-8. في الحالتين استخدم في Excel الأمر بيانات ← من نص/CSV، واختر UTF-8 والفاصلة كمحدِّد، فتظهر الأعمدة صحيحة.

الأصفار البادئة والأرقام الطويلة

تعامل جداول البيانات كل ما يشبه الرقم على أنه رقم. رمز بريدي مثل 01234 يفقد صفره البادئ، ومعرّف من 16 رقمًا مثل 1234567890123456 يُقرَّب ويظهر بالشكل 1.23457E+15. ملف CSV نفسه صحيح؛ يحدث الضرر عندما يفتحه Excel. استورد تلك الأعمدة كنص، وأرسل المعرّفات الطويلة كنصوص في JSON ‏("id": "1234567890123456")، حتى تحتفظ بها كل أداة كما هي تمامًا.

المصفوفات داخل السجلات

المصفوفات أصعب جزء في أي تحويل، لأن السجل الواحد قد يحتوي على قيم كثيرة بينما في صف CSV خلية واحدة لكل عمود. توزيعها على صفوف عدة سيكرر كل الحقول الأخرى، وتوزيعها على أعمدة مرقمة (tags_1، tags_2…) يُنشئ ترويسة مختلفة لكل ملف. الاحتفاظ بقائمة القيم البسيطة في خلية واحدة، وبمصفوفة الكائنات كنص JSON، يُبقي كل سجل صفًا واحدًا بالضبط ويتيح إعادة بناء البيانات الأصلية عند الحاجة.

افحص النتيجة قبل مشاركتها

  • عدد الصفوف يساوي عدد السجلات في مصفوفة JSON.
  • الترويسة تحتوي على كل حقل تتوقعه، بما فيها الحقول الاختيارية.
  • الحقول المتداخلة تظهر كأعمدة بشرطة سفلية، مثل address_city.
  • القيم التي فيها فواصل أو علامات اقتباس أو فواصل أسطر بقيت في خلية واحدة.

تحتاج إلى جدول بيانات أو إلى الاتجاه المعاكس؟

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

افتح محوّل JSON إلى CSV

LinkedInXFacebook