UTILS.
۱۰۰٪ در مرورگر
💠

تبدیل JSON به کلاس‌های ‏C#

از یک نمونه JSON کلاس‌های مدل C# برای System.Text.Json یا Newtonsoft.Json بسازید، با ویژگی‌های PascalCase و انواع مقداری nullable.

خروجی

درباره این ابزار

ابزار تبدیل JSON به کلاس‌های C# یک نمونه JSON چسبانده‌شده را به کلاس‌ها یا رکوردهای مدل C# تبدیل می‌کند، تا توسعه‌دهندگان NET. بتوانند DTOها را در چند ثانیه از یک پاسخ API بسازند. JSON را تجزیه می‌کند، انواع C# را به‌صورت بازگشتی استنتاج می‌کند و برای هر شیء یک نوع تولید می‌کند: رشته‌ها به string، رشته‌های تاریخ‌-زمان ISO به DateTime، اعداد صحیح به int یا long، سایر اعداد به double، بولین‌ها به bool، آرایه‌ها به List<T>، و اشیای تودرتو به کلاس‌های PascalCase خودشان که پیش از والدینی که به آن‌ها ارجاع می‌دهند اعلان می‌شوند.

همه تجزیه و تولید کد به‌صورت محلی در مرورگر شما با JSON.parse و JavaScript ساده رخ می‌دهد — هیچ چیز بارگذاری نمی‌شود. ویژگی‌ها به‌صورت auto-property با PascalCase تولید می‌شوند، public T Prop { get; set; }. هنگامی که کلید JSON از نام ویژگی PascalCase متفاوت باشد، ابزار [JsonPropertyName("originalKey")] برای System.Text.Json یا [JsonProperty("originalKey")] برای Newtonsoft اضافه می‌کند، و فقط دستورات using لازم گنجانده می‌شوند.

ویژگی‌های نوع-مقداری که می‌توانند در هر نمونه‌ای null باشند nullable می‌شوند (int?, double?, bool?, DateTime?)، در حالی که انواع مرجع مانند string و List از قبل nullable هستند. کلید تغییر serializer سبک attribute و using را بین System.Text.Json (پیش‌فرض) و Newtonsoft.Json جابه‌جا می‌کند؛ کلید تغییر shape یا کلاس (پیش‌فرض) یا رکورد تولید می‌کند. کد را کپی کنید یا آن را به‌عنوان یک فایل .cs دانلود کنید.

پرسش‌های پرتکرار

انواع JSON چگونه به C# نگاشت می‌شوند؟
string به string، یک تاریخ‌-زمان ISO به DateTime، عدد صحیح به int (long فراتر از محدوده int)، عدد غیرصحیح به double، بولین به bool، آرایه به List<T>، و شیء به یک کلاس یا رکورد نام‌گذاری‌شده. انواع مقداری nullable یک اصلاح‌گر ? انتهایی می‌گیرند.
System.Text.Json یا Newtonsoft؟
کلید تغییر serializer یکی را انتخاب می‌کند. این کنترل می‌کند که وقتی نام یک ویژگی از کلید JSON متفاوت باشد کدام attribute استفاده شود — [JsonPropertyName("key")] برای System.Text.Json یا [JsonProperty("key")] برای Newtonsoft — و دستور using متناظر.
آیا می‌توانم به‌جای کلاس‌ها رکورد تولید کنم؟
بله. کلید تغییر shape بین public class (پیش‌فرض) و public record جابه‌جا می‌شود، و همان auto-propertyهای PascalCase و attributeهای JSON را حفظ می‌کند تا بتوانید سبکی را که کدبیس شما ترجیح می‌دهد انتخاب کنید.
آیا JSON به‌صورت خصوصی پردازش می‌شود؟
بله. همه چیز در مرورگر شما با JSON.parse و JavaScript ساده اجرا می‌شود؛ نمونه هرگز بارگذاری نمی‌شود، پس چسباندن payloadهای واقعی API ایمن است.

ابزارهای بیشتر