נתונים · 2 דקות קריאה ·
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 בתא שלו, כך ששום דבר לא נזרק.
פסיקים ומרכאות מקבלים escape אוטומטית
כל ערך שמכיל פסיק, מרכאות כפולות או ירידת שורה נעטף במרכאות כפולות, והמרכאות שבתוכו מוכפלות — הכלל הסטנדרטי של CSV ש-Excel ו-Google Sheets מצפים לו.
2,"Alan, T.","says ""hi"""