تحويل JSON إلى CSV
يتوقع المحوّل مصفوفة JSON من الكائنات ويكتب صف CSV واحدًا لكل كائن. نادرًا ما تتشارك السجلات المفاتيح نفسها تمامًا، لذا يوضح هذا الدليل كيف تُختار الأعمدة وما الذي يملأ الفراغات.
مثال تطبيقي
[
{"id": 1, "name": "Smith, Jane", "tags": ["admin", "ops"]},
{"id": 2, "name": "Kim", "email": "[email protected]"},
{"id": 3, "name": "Lee", "email": null}
]id,name,tags,email 1,"Smith, Jane","admin,ops", 2,Kim,,[email protected] 3,Lee,,
يسرد صف الرؤوس كل مفتاح بترتيب ظهوره الأول: id، name، tags، ثم email من الكائن الثاني. ليس لدى Smith مفتاح email، وقيمة email لدى Lee هي null، لذا تبقى الخليتان فارغتين. تُكتب مصفوفة tags على شكل admin,ops وتوضع بين علامتي اقتباس لأنها تحتوي على المحدد، تمامًا مثل "Smith, Jane".
كيف يتعامل المحوّل مع ذلك
- يجب أن تكون المدخلات مصفوفة JSON مثل [{...}, {...}]؛ ويُرفض الكائن المفرد وحده.
- الأعمدة هي اتحاد مفاتيح جميع الكائنات، بترتيب ظهور كل مفتاح لأول مرة.
- ينتج عن المفتاح الناقص أو القيمة null خلية فارغة.
- تُكتب الأرقام والقيم المنطقية كنص عادي، مثل 42 وtrue.
- تُكتب مصفوفات القيم البسيطة بعناصرها مفصولة بفواصل. أما الكائنات المتداخلة والمصفوفات التي تحتوي على كائنات فتُكتب بصيغة JSON مضغوطة داخل الخلية، فلا تُفقد أي بيانات؛ وإذا كنت تحتاج إلى أعمدة منفصلة فسطّحها أولًا (مثلًا إلى address_city).
- القيم التي تحتوي على المحدد أو علامة اقتباس أو فاصل أسطر توضع بين علامتي اقتباس مزدوجتين، مع مضاعفة علامات الاقتباس الداخلية.