ตัวแปลง JSON เป็น Dart
ตัวแปลง JSON เป็น Dart ออนไลน์ฟรี วางตัวอย่าง API แล้วสร้างคลาสข้อมูลแบบมีประเภทพร้อม factory fromJson และ toJson, null safety และฟิลด์ final ใช้กับ Flutter ได้ทันที ทำงานในเบราว์เซอร์ทั้งหมด
ตัวแปลง JSON เป็น Dart สร้างอะไรให้บ้าง?
สร้างคลาส Dart พร้อมใช้งานที่มีฟิลด์แบบมีประเภท และ factory fromJson กับ toJson สำหรับทุกโมเดล ทำให้ถอดและเข้ารหัส payload ของ API ด้วย Dart ล้วน ๆ ได้ โดยไม่ต้องใช้ build_runner หรือแพ็กเกจเพิ่ม
ออบเจกต์ที่ซ้อนกันจัดการอย่างไร?
ออบเจกต์ JSON แต่ละตัวจะกลายเป็นคลาสของตัวเอง คลาสแม่เก็บฟิลด์ประเภทซ้อน fromJson ของมันเรียก factory ของคลาสลูกแบบเรียกซ้ำ และ toJson เรียก toJson ของลูก ข้อมูลลึก ๆ จึงกลายเป็นต้นไม้คลาสเล็ก ๆ
อาร์เรย์ของออบเจกต์เป็นอย่างไร?
ออบเจกต์จากแต่ละเอลิเมนต์จะถูกรวมกัน ยูเนียนของทุกคีย์กลายเป็นคลาสเอลิเมนต์เดียว และฟิลด์มีประเภท List<คลาสเอลิเมนต์> คีย์ที่ขาดจากบางเอลิเมนต์จะถูกทำเป็น nullable อัตโนมัติ
ตัวเลือก null safety เปลี่ยนอะไร?
เมื่อเปิด null safety ฟิลด์ที่อาจขาดหรือเป็น null จะมี ? ต่อท้าย constructor ทำให้เป็นพารามิเตอร์แบบระบุชื่อที่เลือกได้ และ fromJson อ่านด้วยการแคสต์ที่รู้เรื่อง null ปิดไว้จะได้ประเภท non-nullable ธรรมดา
ควรเปิดตัวเลือก final เมื่อไร?
final ประกาศทุกฟิลด์ให้เปลี่ยนแปลงไม่ได้หลังสร้าง ซึ่งเป็นสไตล์ที่แนะนำสำหรับคลาสข้อมูลใน Dart และช่วยให้ analyzer จับการแก้โมเดลโดยไม่ตั้งใจได้
ถ้าคีย์ JSON ไม่ใช่ identifier ที่ถูกต้องของ Dart ล่ะ?
คีย์อย่าง @type หรือ order-id จะถูกเปลี่ยนชื่ออัตโนมัติเป็น identifier แบบ camelCase ที่ใช้ได้ (เติม $ ข้างหน้าถ้าขึ้นต้นด้วยตัวเลข) fromJson ที่ได้ยังอ่านคีย์ต้นฉบับ และมีข้อความแจ้งรายชื่อฟิลด์ที่เปลี่ยนไปทุกตัว
ชื่อคลาสถูกกำหนดอย่างไร?
คลาสหลักใช้ชื่อจากช่อง Class name โดยแปลงเป็น PascalCase ส่วนคลาสซ้อนได้ชื่อ PascalCase จากคีย์ JSON ที่สร้างมัน เช่น user_profile กลายเป็นคลาส UserProfile
JSON ของฉันถูกส่งไปเซิร์ฟเวอร์หรือเปล่า?
เปล่า การพาร์ซและการสร้างโค้ดทำงานในเบราว์เซอร์ทั้งหมด ไฟล์ .dart ถูกสร้างในเครื่องเพื่อดาวน์โหลด ตัวอย่าง API ส่วนตัวและโทเคนจึงไม่เคยออกจากเครื่องของคุณ
วิธีใช้ ตัวแปลง JSON เป็น Dart
เปลี่ยนตัวอย่าง JSON เป็นคลาสข้อมูล Dart พร้อมใช้งานโดยไม่ต้องออกจากเบราว์เซอร์ คลาส ฟังก์ชันโรงงาน และการแคสต์ถูกสร้างในเครื่องทั้งหมด เพย์โหลดของคุณไม่ถูกอัปโหลดเลย
- วาง JSON ลงในตัวแก้ไขด้านซ้าย โค้ด Dart จะปรากฏด้านขวาตามการพิมพ์ (debounce 300 มิลลิวินาที)
- ตั้งชื่อระดับบนสุดใน "Class name:" — จะถูกแปลงเป็น PascalCase สำหรับคลาสราก
- เปิด "Null safety" เพื่อเติม ? ให้ฟิลด์ที่เป็น null ได้ และสร้างการแคสต์แบบรู้เรื่อง null ใน fromJson
- เปิด "final" เพื่อประกาศให้ทุกฟิลด์เปลี่ยนค่าไม่ได้ แล้วคัดลอกผลลัพธ์หรือดาวน์โหลดเป็นไฟล์ .dart
ออบเจกต์ที่ซ้อนกันจะกลายเป็นคลาสของตัวเอง อาร์เรย์ของออบเจกต์จะถูกรวมเป็นคลาสองค์ประกอบชนิด List<Element> ส่วนคีย์ที่ไม่ถูกต้องอย่าง @type จะถูกเปลี่ยนชื่ออัตโนมัติ โดย fromJson ยังอ่านคีย์ดั้งเดิมอยู่
เครื่องมือที่เกี่ยวข้อง
- JSON เป็น TypeScript แปลง JSON เป็น interface และนิยามประเภท TypeScript ทันที รองรับออบเจกต์ซ้อน อาร์เรย์ และประเภท union
- JSON เป็น Go Struct แปลง JSON เป็นนิยาม Go Struct ทันที วาง JSON และรับโค้ด Go ที่สะอาดพร้อมประเภทที่ถูกต้อง แท็ก json และรองรับ omitempty
- ตรวจสอบแฮช คำนวณและตรวจสอบแฮช MD5, SHA-1, SHA-256, SHA-512 ในเครื่อง
- เครื่องคำนวณ Chmod เครื่องคำนวณ chmod ออนไลน์ฟรีเพื่อแสดงและคำนวณสิทธิ์ไฟล์ Linux ด้วยช่องทำเครื่องหมาย แปลงระหว่างสัญกรณ์ตัวเลข (755, 644) และสัญลักษณ์ (rwxr-xr-x) ทันที รองรับสิทธิ์พิเศษเช่น setuid, setgid, sticky bit
- ตาราง ASCII ข้อมูลอ้างอิงการเข้ารหัสอักขระ ASCII ครบถ้วนพร้อมรหัสทศนิยม เลขฐานสิบหก ฐานแปด ฐานสอง เอนทิตี HTML และคำอธิบายอักขระ ค้นหาและกรองได้ทันที
- ตัวแสดง Hex ดูเนื้อหาไฟล์ในรูปแบบ hex dump พร้อมการค้นหา การนำทางออฟเซ็ต และการเลื่อนเสมือน
- ค้นหาประเภท MIME ค้นหาประเภท MIME ตามนามสกุลไฟล์หรือค้นหานามสกุลตามประเภท MIME ทันที ข้อมูลอ้างอิงออนไลน์ฟรีที่มีมากกว่า 1000 รายการ
- ตรวจสอบความละเอียดหน้าจอ ตรวจจับความละเอียดหน้าจอ ขนาดวิวพอร์ต DPI และความลึกของสีแบบเรียลไทม์