UTILS.
ทำงานในเบราว์เซอร์ 100%
💠

JSON เป็นคลาส C#

สร้างคลาส model ของ C# จาก JSON ตัวอย่างสำหรับ System.Text.Json หรือ Newtonsoft.Json พร้อมพร็อพเพอร์ตี้ PascalCase และชนิดค่าที่ nullable

ผลลัพธ์

เกี่ยวกับเครื่องมือนี้

เครื่องมือ JSON เป็นคลาส C# แปลง JSON ตัวอย่างที่วางเข้ามาให้เป็นคลาสหรือ record model ของ C# นักพัฒนา .NET จึงสร้างโครง DTO จากการตอบกลับ API ได้ในไม่กี่วินาที มันแยกวิเคราะห์ JSON อนุมานชนิด C# แบบเรียกซ้ำ และสร้างหนึ่งชนิดต่อหนึ่ง object: string กลายเป็น string, สตริงวันที่-เวลาแบบ ISO เป็น DateTime, จำนวนเต็มเป็น int หรือ long, ตัวเลขอื่น ๆ เป็น double, boolean เป็น bool, อาร์เรย์เป็น List<T>, และ object ซ้อนกลายเป็นคลาส PascalCase ของตัวเองที่ประกาศก่อนตัวแม่ที่อ้างอิงถึง

การแยกวิเคราะห์และการสร้างโค้ดทั้งหมดเกิดขึ้นภายในเบราว์เซอร์ของคุณด้วย JSON.parse และ JavaScript ธรรมดา — ไม่มีอะไรถูกอัปโหลด พร็อพเพอร์ตี้ถูกสร้างเป็น auto-property แบบ PascalCase, public T Prop { get; set; } เมื่อคีย์ JSON ต่างจากชื่อพร็อพเพอร์ตี้ PascalCase เครื่องมือจะเพิ่ม [JsonPropertyName("originalKey")] สำหรับ System.Text.Json หรือ [JsonProperty("originalKey")] สำหรับ Newtonsoft และรวมเฉพาะ using directive ที่จำเป็น

พร็อพเพอร์ตี้ชนิดค่าที่อาจเป็น null ในตัวอย่างใดก็ได้จะถูกทำให้ nullable (int?, double?, bool?, DateTime?) ขณะที่ชนิดอ้างอิงอย่าง string และ List เป็น nullable อยู่แล้ว ตัวสลับ serializer สลับสไตล์แอตทริบิวต์และ using ระหว่าง System.Text.Json (ค่าเริ่มต้น) และ Newtonsoft.Json; ตัวสลับรูปแบบสร้างเป็นคลาส (ค่าเริ่มต้น) หรือ record คัดลอกโค้ดหรือดาวน์โหลดเป็นไฟล์ .cs

คำถามที่พบบ่อย

ชนิด JSON ถูกจับคู่กับ C# อย่างไร?
string เป็น string, ISO date-time เป็น DateTime, จำนวนเต็มเป็น int (long เกินช่วง int), ตัวเลขที่ไม่ใช่จำนวนเต็มเป็น double, boolean เป็น bool, อาร์เรย์เป็น List<T>, และ object เป็นคลาสหรือ record ที่มีชื่อ ชนิดค่าที่ nullable ได้ตัวดัดแปลง ? ต่อท้าย
System.Text.Json หรือ Newtonsoft?
ตัวสลับ serializer เลือกอย่างใดอย่างหนึ่ง มันควบคุมแอตทริบิวต์ที่ใช้เมื่อชื่อพร็อพเพอร์ตี้ต่างจากคีย์ JSON — [JsonPropertyName("key")] สำหรับ System.Text.Json หรือ [JsonProperty("key")] สำหรับ Newtonsoft — และ using directive ที่สอดคล้องกัน
ฉันสร้าง record แทนคลาสได้ไหม?
ได้ ตัวสลับรูปแบบสลับระหว่าง public class (ค่าเริ่มต้น) และ public record โดยคง auto-property PascalCase และแอตทริบิวต์ JSON เดิม คุณจึงเลือกสไตล์ที่โค้ดเบสของคุณชอบได้
JSON ถูกประมวลผลแบบส่วนตัวไหม?
ใช่ ทุกอย่างทำงานในเบราว์เซอร์ของคุณด้วย JSON.parse และ JavaScript ธรรมดา; ตัวอย่างไม่เคยถูกอัปโหลด การวาง payload ของ API จริงจึงปลอดภัย

เครื่องมือเพิ่มเติม