מהו ממיר מבנה JSON to Go?
ממיר JSON to Go struct הופך מסמך JSON להצהרות מסוג Go שמתארות אותו, כך שתוכל לבטל את המארש של אותם נתונים עם קידוד/json במקום להקליד את ה-struct ביד. כל אובייקט JSON הופך ל-Go struct, כל שדה נושא תג json:"key" שממפה אותו בחזרה לשם המקורי, והסוגים הסקלרים מוסקים מהערכים: מחרוזת JSON הופכת למחרוזת, מספר שלם הופך ל-int, עשרוני הופך ל-float64, true ו-false הופכים ל-bool, ו-null הופך לממשק{}. הדבק מטען ותקבל בלוק מסוג מוכן להידור בחזרה.
זה קיים כי כתיבת Go structs מתגובת API אמיתית היא מייגעת וקל לטעות בעדינות שמות שדות יש לייצא ופעל לפי מוסכמות Go, כך מזהה הופך מזהה ו user_url הופך UserURL, בעוד תג json צריך לשמר את המפתח המקורי המדויק או json.Unmarshal מדלג בשקט על השדה אובייקטים מקוננים צריכים מבנה משלהם, ומערך של אובייקטים צריך מבנה יחיד המכסה כל מפתח שיש לכל אלמנט עושה את זה על פני תגובה מקוננת עמוק הוא המקום שבו טעויות מתגנבות פנימה הממיר מיישם את הכללים האלה באופן עקבי: אובייקטים מקוננים הופכים ל structs מוטבע, ומערכים של אובייקטים מתמזגים כך מפתח שמופיע רק בחלק מהאלמנטים עדיין קיים בסוג שנוצר.
הכל פועל בדפדפן שלך ה-JSON שאתה מדביק מנותח ומנתח ב-JavaScript במכשיר שלך, כך ששום דבר לא מועלה, נרשם או מאוחסן, והכלי ממשיך לעבוד עם הרשת מנותקת לאחר טעינת הדף. זה משנה כאשר המטען הוא תגובת API פרטית או מכיל מפתחות וערכים שאתה מעדיף לא לשלוח לשום מקום. אתה יכול לשנות את שם סוג השורש, להעביר מספרים שלמים ל-int64 כאשר אתה צריך את הסוג הרחב יותר, ולהוסיף השמטה לכל תג כאשר אתה רוצה שערכי אפס יושמטו מהפלט המקודד.
דוגמה קצרה מציגה את המיפוי go JSON to struct. הדבק {"order_id": 1042, "סהכ": 19.5, "פריטים": [{"sku": "A1", "qty": 2}, {"sku": "B2", "qty": 1, "gift_note": "Happy birthday"}]}, הקלד סדר כסוג השורש ולחץ על המר. אתה מקבל סוג מבנה הזמנה עם OrderID int, Total float64 ופריטים []מבנה המחזיק מחרוזת Sku, Qty int ומחרוזת GiftNote. GiftNote נמצא שם למרות שרק הפריט השני מכיל אותו, מכיוון שממיר המבנה JSON to Go ממזג כל אלמנט במערך לסוג אחד.
כיצד להשתמש בממיר המבנה של JSON to Go?
הדבק את ה-JSON שלך
הדבק אובייקט או מערך JSON בתיבת הקלט. טען תחילה את המדגם אם ברצונך לראות את הצורה של המבנה שנוצר לפני השימוש בנתונים שלך.
תן שם לסוג השורש
הזן שם עבור המבנה ברמה העליונה, כגון User או ApiResponse. הוא מנוקה לתוך מזהה Go מיוצא חוקי כך שהוא מהדר כפי שנכתב.
הגדר אפשרויות של מספר שלם ותג
בחר int או int64 עבור מספרים שלמים, והפעל את omitempty אם אתה רוצה שדות ריקים שיישארו בחוץ כאשר המבנה מקודד בחזרה ל-JSON.
המר והעתק
לחץ על המר כדי לבנות את הגדרות המבנה, ולאחר מכן העתק אותן לקובץ Go שלך.JSON לא חוקי מדווח עם הודעת המנתח המדויקת כדי שתוכל לתקן אותה.
תכונות מפתח
תגיות json נכונות
כל שדה שומר תג json: "original_key" כך ש-json.Unmarshal ממפה את הנתונים בחזרה לשם JSON המדויק, גם כאשר שם השדה Go שונה בהתאם למוסכמות.
שמות שדות Go-Convention
מפתחות מיוצאים וראשי תיבות נפוצים הם באותיות גדולות, כך שמזהה הופך למזהה, משתמש_url הופך ל-UserURL, ו-html_body הופך ל-HTMLBody, תואם לציפיות golint.
מבנים מקוננים מוטבעים
אובייקטי JSON מקוננים הופכים למילוליים מבניים מוטבעים לכל עומק, כך שכל הצורה חיה בהצהרה אחת שתוכל להדביק כגוש בודד.
מערכים ממוזגים של אובייקטים
מערך של אובייקטים מייצר מבנה אחד המכסה כל מפתח שיש לכל אלמנט, וסוגי ערכים סותרים עבור מפתח חוזר לממשק{} במקום להיכשל.
Frequently Asked Questions
Related Tools
JSON Schema Generator
Generate a JSON Schema from any JSON sample. Infers types, merges arrays of objects into one item schema, derives required fields, and detects date-time, email, uri, and uuid formats. Draft-07 and 2020-12 output. 100% client-side.
JSON Sorter
Sort the keys of a JSON object alphabetically, recursively through nested objects, with optional array sorting. Ascending or descending, minify or pretty. Client-side, no signup.
JSON to PHP Array
Convert JSON into a PHP array literal. Choose short [] or array() syntax, indentation, and an optional variable assignment, then copy the result. Runs client-side.
JSON to TypeScript
Generate TypeScript interfaces from any JSON sample. Infers nested types, merges arrays of objects into a single interface, marks nullable and missing keys optional, and emits clean exportable code. 100% client-side.
Comments
0 comments
No comments yet. Be the first to share your thoughts!