JSON เป็น Rust
สร้าง struct ของ Rust พร้อมแอตทริบิวต์ Serde จาก JSON
วาง JSON หรือโหลดตัวอย่างเพื่อสร้างโค้ด Rust
JSON to Rust สร้างอะไร
JSON to Rust แปลงการตอบกลับของ API หรือ JSON ตัวอย่างใดก็ได้เป็น struct ของ Rust เมื่อเปิด Serde ทุก struct จะ derive Serialize และ Deserialize การเปลี่ยนชื่ออัตโนมัติจะตรวจกฎตัวพิมพ์ของ Serde เอง และเพิ่ม #[serde(rename_all = "camelCase")] (หรือกฎอื่น) เฉพาะเมื่อสร้างคีย์ทุกตัวของ struct นั้นได้ตรงกัน คีย์ที่ไม่เข้ากฎจะได้ #[serde(rename = "...")] ฟิลด์ไม่บังคับจะได้ #[serde(default, skip_serializing_if = "Option::is_none")] เพื่อให้ยังไม่ปรากฏเมื่อเขียนกลับ
วิธีใช้งาน
- 1.วาง JSON อัปโหลดหรือลากไฟล์ .json มาวาง หรือโหลดตัวอย่างหนึ่งรายการ
- 2.ตั้งชื่อ struct รากและเลือก derive Debug, Clone และ Serde
- 3.เลือกการเปลี่ยนชื่ออัตโนมัติ กฎตายตัว หรือเปลี่ยนชื่อรายฟิลด์เท่านั้น
- 4.อ่านหมายเหตุใต้ผลลัพธ์ แล้วคัดลอกโค้ดหรือดาวน์โหลด models.rs
การอนุมานชนิด
- •ตรวจทุกรายการในอาร์เรย์ ไม่ใช่แค่รายการแรก และรวมออบเจ็กต์ในอาร์เรย์เดียวกันเข้าด้วยกัน
- •คีย์ที่ไม่มีในบางออบเจ็กต์เป็นแบบไม่บังคับ คีย์ที่บางครั้งเป็น null เป็นแบบ nullable โดยแยกสองกรณีนี้ออกจากกัน
- •1 และ 2.5 ในตำแหน่งเดียวกันจะขยายเป็นทศนิยม ส่วนการปนกันแบบอื่นจะถูกรายงาน
- •อาร์เรย์ว่างและค่าที่เป็น null เท่านั้นไม่มีหลักฐานของชนิด จึงใช้ชนิดทั่วไปและมีหมายเหตุอธิบาย
- •การแมปชนิด: string → String, integer → i64 (u64 หรือ serde_json::Value หากเกินช่วงนั้น), decimal → f64, boolean → bool, array → Vec<T>, object → struct, ไม่มีหรือเป็น null → Option<T>, ไม่ทราบชนิดหรือปนกัน → serde_json::Value
ข้อจำกัดและความเป็นส่วนตัว
ตัวอย่างแสดงเพียงหน้าตาของข้อมูลครั้งหนึ่ง ไม่ใช่สัญญา API ทั้งหมด ตรวจสอบฟิลด์ไม่บังคับ ชนิดทั่วไป และขนาดของตัวเลขก่อนนำโค้ดไปใช้ ข้อมูลเข้าจำกัดที่ 5 MB และการซ้อน 256 ระดับ ตั้งแต่ 2 MB ขึ้นไปการสร้างจะรอให้กดปุ่ม สร้าง ทุกอย่างทำงานในเบราว์เซอร์ และ JSON จะไม่ถูกอัปโหลด ค่าแบบทั่วไปต้องใช้ crate serde_json แม้จะปิด derive ของ Serde
