تبدیل JSON به تایپ
یک نمونهٔ JSON را به اینترفیس TypeScript، استراکت Go، مدل Python، کلاس C#، استراکت Rust یا JSON Schema تبدیل کنید.
تبدیل JSON به تایپ — TypeScript، Go، Python، C#، Rust و JSON Schema
یک نمونهٔ JSON، مثلاً پاسخ یک API، را بچسبانید و تعریف تایپهای متناظرش را بگیرید: اینترفیسهای TypeScript، استراکتهای Go با تگ JSON، مدلهای Pydantic یا dataclassها، کلاسهای C#، استراکتهای Rust برای serde، یا یک JSON Schema. شیءهای تودرتو تایپ نامدار خودشان را میگیرند، پس نتیجه شبیه کدی است که یک برنامهنویس خودش مینوشت.
پاسخهای API اغلب دادهٔ واقعی مشتری، توکن و شناسههای داخلی دارند. تبدیل کاملاً در مرورگر شما انجام میشود، پس هیچکدام از اینها به جایی فرستاده نمیشود.
روش استفاده
- JSON را در کادر سمت چپ بچسبانید، یا برای دیدن یک مثال نمونه را بزنید.
- زبان خروجی را انتخاب کنید.
- نام ریشه را برای تایپ سطح بالا تعیین کنید؛ برای TypeScript بین
interfaceوtypeیکی را انتخاب کنید. - نتیجه را در پروژهٔ خود کپی کنید.
تایپها چطور تشخیص داده میشوند
- عددها وقتی همهٔ مقدارها صحیح باشند integer میشوند و در غیر این صورت ممیز شناور:
42و18.5در یک فیلد، نوع float میدهند. - آرایههای شیء با هم ادغام میشوند: هر کلیدی که در هر آیتمی دیده شود، در تایپ میآید.
- فیلدهای اختیاری: وقتی کلیدهای جاافتاده اختیاری شوند روشن است، کلیدی که در بعضی آیتمها نیست اختیاری میشود (
coupon?: string،omitempty،Option،= None). - فیلدهای nullپذیر: مقداری که در یک آیتم
nullباشد فیلد را nullپذیر میکند، مثلاًstring | nullیا در Go*string. - نوعهای مخلوط، مثل عدد در یک آیتم و رشته در آیتمی دیگر، به
unknown،Anyیاinterface{}تبدیل میشوند تا خودتان دستی تصمیم بگیرید. - نامها از کلیدها میآیند:
addressبهAddressتبدیل میشود و آیتمهایordersبهOrder. شیءهایی که شکل یکسان دارند یک تایپ مشترک میگیرند.
خروجی هر زبان
| خروجی | چه چیزی میگیرید |
|---|---|
| TypeScript | export interface یا export type؛ کلیدهایی که نام معتبر نیستند داخل کوتیشن میآیند |
| Go | استراکتهای اکسپورتشده با تگ json، نوعهای int64 و float64، و سرواژههای رایج مثل ID و URL |
| Python (Pydantic) | کلاسهای BaseModel؛ فیلدهای snake_case همراه با Field(alias=...) وقتی کلید JSON فرق دارد |
| Python (dataclass) | کلاسهای @dataclass، با فیلدهای اختیاری در انتها، همانطور که dataclassها لازم دارند |
| C# | کلاسهایی با [JsonPropertyName] برای System.Text.Json، و نوعهای long، double و List<T> |
| Rust | استراکتهایی که Serialize و Deserialize را derive میکنند، با #[serde(rename)] هر جا لازم باشد |
| JSON Schema | یک اسکیمای draft 2020-12 با فهرستهای required، آماده برای اعتبارسنجها |
دقیقترین تایپها را بگیرید
هر تایپ فقط به اندازهٔ نمونهای که از آن ساخته شده کامل است. پاسخی را به کار ببرید که هر فیلد اختیاری را دستکم یک بار داشته باشد، و بهجای یک آیتم، آرایهای با چند آیتم متفاوت بچسبانید تا ادغام بتواند ببیند کدام فیلدها تغییر میکنند. تاریخها در JSON به شکل رشته میآیند و رشته میمانند؛ هر جا نوع تاریخ واقعی لازم دارید، آنها را در کد خودتان تبدیل کنید.
ابزارهای مرتبط
برای مرتب کردن یا اعتبارسنجی JSON پیش از تبدیل، از فرمتکننده JSON استفاده کنید. برای تبدیل آن به YAML، CSV یا XML، مبدل JSON را به کار ببرید. صفحههای کاربردی زیر همین ابزار را با یک زبان ازپیشانتخابشده باز میکنند: تبدیل JSON به TypeScript، تبدیل JSON به Go، تبدیل JSON به Python، تبدیل JSON به C# و ساخت JSON Schema.