JSON เป็น C#
สร้าง class หรือ record ของ C# สำหรับ System.Text.Json หรือ Newtonsoft.Json
วาง JSON หรือโหลดตัวอย่างเพื่อสร้างโค้ด C#
JSON to C# สร้างอะไร
JSON to C# แปลงการตอบกลับของ API หรือ JSON ตัวอย่างใดก็ได้เป็นชนิดของ C# ในไฟล์เดียวที่ใช้ file-scoped namespace โหมด Class เขียนพร็อพเพอร์ตี { get; set; } โหมด Record เขียน positional record และวางแอตทริบิวต์บนพร็อพเพอร์ตีที่สร้างขึ้นด้วย [property: ...] System.Text.Json ใช้ [JsonPropertyName("key")] และ Newtonsoft.Json ใช้ [JsonProperty("key")] พร็อพเพอร์ตีจะไม่ได้ชื่อเดียวกับชนิดที่ครอบอยู่ ซึ่ง C# ไม่อนุญาต
วิธีใช้งาน
- 1.วาง JSON อัปโหลดหรือลากไฟล์ .json มาวาง หรือโหลดตัวอย่างหนึ่งรายการ
- 2.ตั้งชื่อชนิดรากและเนมสเปซ (ไม่บังคับ) เช่น Company.Project.Models
- 3.เลือกรูปแบบชนิด การตั้งชื่อพร็อพเพอร์ตี และ nullable reference types
- 4.เลือกตัวซีเรียลไลซ์และนโยบายแอตทริบิวต์ แล้วคัดลอกโค้ดหรือดาวน์โหลด <Root>.cs
การอนุมานชนิด
- •ตรวจทุกรายการในอาร์เรย์ ไม่ใช่แค่รายการแรก และรวมออบเจ็กต์ในอาร์เรย์เดียวกันเข้าด้วยกัน
- •คีย์ที่ไม่มีในบางออบเจ็กต์เป็นแบบไม่บังคับ คีย์ที่บางครั้งเป็น null เป็นแบบ nullable โดยแยกสองกรณีนี้ออกจากกัน
- •1 และ 2.5 ในตำแหน่งเดียวกันจะขยายเป็นทศนิยม ส่วนการปนกันแบบอื่นจะถูกรายงาน
- •อาร์เรย์ว่างและค่าที่เป็น null เท่านั้นไม่มีหลักฐานของชนิด จึงใช้ชนิดทั่วไปและมีหมายเหตุอธิบาย
- •การแมปชนิด: string → string, integer → int, long, ulong หรือ decimal ตามช่วงค่า, decimal → double, boolean → bool, array → List<T>, object → class หรือ record, ไม่มีหรือเป็น null → T?, ไม่ทราบชนิดหรือปนกัน → object
- •สมาชิก required ต้องใช้ C# 11 / .NET 7 ขึ้นไป จากนั้น System.Text.Json จะปฏิเสธ JSON ที่ขาดคีย์ที่บังคับ
ข้อจำกัดและความเป็นส่วนตัว
ตัวอย่างแสดงเพียงหน้าตาของข้อมูลครั้งหนึ่ง ไม่ใช่สัญญา API ทั้งหมด ตรวจสอบฟิลด์ไม่บังคับ ชนิดทั่วไป และขนาดของตัวเลขก่อนนำโค้ดไปใช้ ข้อมูลเข้าจำกัดที่ 5 MB และการซ้อน 256 ระดับ ตั้งแต่ 2 MB ขึ้นไปการสร้างจะรอให้กดปุ่ม สร้าง ทุกอย่างทำงานในเบราว์เซอร์ และ JSON จะไม่ถูกอัปโหลด เมื่อใช้ System.Text.Json พร็อพเพอร์ตีชนิด object จะเก็บ JsonElement หลังดีซีเรียลไลซ์
