توسعه‌دهنده 🔒 در مرورگر اجرا می‌شود — داده‌ای ارسال نمی‌شود

تبدیل 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 اغلب دادهٔ واقعی مشتری، توکن و شناسه‌های داخلی دارند. تبدیل کاملاً در مرورگر شما انجام می‌شود، پس هیچ‌کدام از این‌ها به جایی فرستاده نمی‌شود.

روش استفاده

  1. JSON را در کادر سمت چپ بچسبانید، یا برای دیدن یک مثال نمونه را بزنید.
  2. زبان خروجی را انتخاب کنید.
  3. نام ریشه را برای تایپ سطح بالا تعیین کنید؛ برای TypeScript بین interface و type یکی را انتخاب کنید.
  4. نتیجه را در پروژهٔ خود کپی کنید.

تایپ‌ها چطور تشخیص داده می‌شوند

  • عددها وقتی همهٔ مقدارها صحیح باشند integer می‌شوند و در غیر این صورت ممیز شناور: 42 و 18.5 در یک فیلد، نوع float می‌دهند.
  • آرایه‌های شیء با هم ادغام می‌شوند: هر کلیدی که در هر آیتمی دیده شود، در تایپ می‌آید.
  • فیلدهای اختیاری: وقتی کلیدهای جاافتاده اختیاری شوند روشن است، کلیدی که در بعضی آیتم‌ها نیست اختیاری می‌شود (coupon?: string، omitempty، Option، = None).
  • فیلدهای null‌پذیر: مقداری که در یک آیتم null باشد فیلد را null‌پذیر می‌کند، مثلاً string | null یا در Go *string.
  • نوع‌های مخلوط، مثل عدد در یک آیتم و رشته در آیتمی دیگر، به unknown، Any یا interface{} تبدیل می‌شوند تا خودتان دستی تصمیم بگیرید.
  • نام‌ها از کلیدها می‌آیند: address به Address تبدیل می‌شود و آیتم‌های orders به Order. شیءهایی که شکل یکسان دارند یک تایپ مشترک می‌گیرند.

خروجی هر زبان

خروجیچه چیزی می‌گیرید
TypeScriptexport 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.

آموزش‌های مرتبط