נתונים · 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"""

לממיר JSON ל-CSV