פועל על המכשיר שלכם · הקובץ לא עוזב את המכשיר.
גררו קובץ .json או הדביקו JSON ישירות מתשובת API וקבלו CSV שנפתח באקסל, ב-Google Sheets או בכל מסך ייבוא. רשימה ברמה העליונה נותנת שורה לכל פריט; אחרת נבחרת רשימת הרשומות הארוכה ביותר במסמך, כך ש-{"results": [...], "count": 2} נותן שורה לכל תוצאה; אובייקט שאין בו רשימה הופך לשורה אחת.
הכללים קבועים כדי שהתוצאה תהיה צפויה: אובייקטים מקוננים הופכים לעמודות מופרדות בנקודה (address.city), רשימה של ערכים פשוטים מחוברת בנקודה-פסיק בתא אחד, ורשימה של אובייקטים בתוך רשומה מקבלת עמודות ממוספרות (items.0.name). שורת הכותרת היא איחוד כל המפתחות שנמצאו, לפי סדר הופעתם הראשון, ולכן רשומות עם שדות חסרים פשוט משאירות תא ריק.
ה-CSV נכתב לפי RFC 4180 – שדות עם פסיקים, מירכאות או מעברי שורה מצוטטים כראוי – ב-UTF-8 עם BOM אופציונלי כדי שאקסל יציג נכון כל כתב, ניקוד וסמלים. לפני תא שמתחיל ב-=, +, - או @ נוסף גרש, כדי שגיליון אלקטרוני יציג אותו כטקסט ולא יריץ אותו כנוסחה. רואים את 200 השורות הראשונות לפני ההורדה, ושום דבר לא יוצא מהמכשיר.
לא מיועד ל: אובייקט יחיד מקונן עמוק בלי רשימה בתוכו – הוא מומר, אבל כשורה אחת רחבה מאוד ולא כטבלה.
רשימה ברמה העליונה היא השורות. אחרת הכלי מחפש במסמך, עד שמונה רמות לעומק, את רשימת האובייקטים הארוכה ביותר. כך גם {"response": {"data": {"items": [...]}}} וגם {"results": [...], "count": 2, "next": null} נותנים שורה לכל פריט, והשורה שמתחת לתוצאה מציינת באיזו רשימה נעשה שימוש, למשל results. ערכים שלצד הרשימה, כמו count ו-next, אינם חלק מאף רשומה ומושארים בחוץ.
מבין שתי רשימות באורך שווה, זו שקרובה יותר לראש המסמך מנצחת. כדי לקבל רשימה קצרה יותר, העתיקו אותה מה-[ שלה ועד ה-] והדביקו רק אותה. מסמך בלי רשימת אובייקטים הופך לשורה אחת, ועוטפים עם מפתח יחיד מדולגים, כך ש-{"order": {"id": 7, "total": 12}} נותן את העמודות id ו-total.
טקסט מועתק בדיוק, כולל תאריכים, שנשארים בצורה שבה הם כתובים ב-JSON, כמו 2024-01-05T10:00:00Z. true ו-false נכתבים כמילים. null, רשימה ריקה ואובייקט ריק הופכים כולם לתא ריק, כך שב-CSV הם נראים בדיוק כמו שדה שהיה חסר.
מספר נכתב בדיוק כפי שהוא ב-JSON: 1.0 נשאר 1.0, 1e21 נשאר 1e21, ומזהה כמו 12345678901234567890 שומר על כל ספרה גם בלי מירכאות. קורא JSON רגיל היה הופך את המזהה הזה ל-12345678901234567000.
רשימה של רשימות נפתחת רמה אחת: "m": [[1, 2], [3]] נותן עמודה m.0 שמכילה 1;2 ועמודה m.1 שמכילה 3. רשימה שמערבבת אובייקטים וערכים פשוטים ממספרת כל פריט, כך ש-"x": [{"z": 1}, 2] נותן x.0.z ו-x.1.
שמות העמודות נוצרים מחיבור מפתחות בנקודות, ולכן מפתח שכבר מכיל נקודה יכול להתנגש במפתח מקונן: {"a.b": 1, "a": {"b": 2}} היה יוצר a.b פעמיים. השני מקבל סיומת, כך שהעמודות הן a.b ו-a.b_2 ושני הערכים נשמרים.
פסיק הוא הבחירה הרגילה. נקודה-פסיק מתאימה לגיליון אלקטרוני שמוגדר לשפה שכותבת שברים עשרוניים עם פסיק, שבו קובץ מופרד בפסיקים נפתח לעיתים קרובות בעמודה אחת. טאב וקו אנכי מיועדים למערכות שמבקשות אותם. לא משנה מה המפריד, הקובץ נקרא .csv.
תא שמתחיל ב-=, +, - או @ הוא נוסחה מבחינת גיליון אלקטרוני, שיריץ אותה בפתיחת הקובץ. תא כזה מקבל גרש לפניו, הסימן שגיליונות אלקטרוניים עצמם משתמשים בו כדי לומר „זה טקסט“, כך ש-=1+1 נכתב '=1+1. מספרים רגילים כמו -5 או +3.5 נשארים כמו שהם.
עמוד זה בשפות אחרות: English · العربية · Deutsch · Français · Español · Русский · Português · 中文 · हिन्दी · Türkçe · فارسی · اردو · Bahasa Indonesia · বাংলা