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