Мазмұнға өту

JSON деректерінен TypeScript, Go, Python т.б. типтерін жасау

JSON үлгілерін қойыңыз, сонда браузеріңізде TypeScript интерфейстері, Zod схемалары, Go struct құрылымдары, сондай-ақ Python, Java, C#, Kotlin, Swift және Rust типтері жасалады.

Бірнеше үлгі (бірінен соң бірі немесе JSON Lines) және массив ішіндегі объектілер біріктіріледі: бір жерде жоқ кілттер міндетті емес, null мәндері null болуы мүмкін өрістер болады.

TypeScript
Үлгіні қойып, «Типтерді жасау» түймесін басыңыз.
Жариялау түрі
Браузеріңізде жұмыс істейді · серверге жүктелмейдіҚалай жұмыс істейді

JSON үлгісінен типтер құралын қалай қолдану керек

  1. 1

    JSON үлгілерін қойыңыз

    Бір жауапты, жазбалар массивін немесе бірнеше жауапты қатарынан қойыңыз; үлгіде біріктірілген екі пайдаланушы көрсетілген.

  2. 2

    Тілді таңдаңыз

    TypeScript, Zod, Go, Python, Java, C#, Kotlin, Swift немесе Rust тілін және оған арналған стиль параметрлерін таңдаңыз.

  3. 3

    Түбір типке ат беріңіз

    Жоғарғы деңгейлі тип атын енгізіңіз, мысалы, User немесе OrderResponse.

  4. 4

    Жасап, көшіріңіз

    Типтерді жасау түймесін басыңыз, содан кейін кодты көшіріңіз немесе жүктеп алыңыз; өзгерістер енгізсеңіз, код автоматты түрде қайта жасалады.

Шектеулер және Pro

Тіркелусіз тегін: 3 Python стилі бар 9 шығыс тілі, біріктірілетін үлгілер саны шектеусіз, файлдар 20 MB дейін, жасау 30 s кейін тоқтатылады.

Pro жарнаманы өшіреді; генератор барлық тарифте бірдей. Pro-ны қарау

JSON үлгісінен типтер туралы

API жауабына арналған типтерді қолмен жазу баяу әрі қателерге бейім, әсіресе деректер үш деңгей тереңдікте ұялаған кезде. Бір немесе бірнеше JSON үлгісін қойыңыз, генератор құрылымды анықтап, тоғыз түрлі форматта көшіріп қоюға дайын анықтамаларды жазады: TypeScript интерфейстері немесе тип бүркеншік аттары, орындалу кезінде тексеру үшін Zod схемалары бар TypeScript, json тегтері бар Go структуралары, Python dataclass, TypedDict немесе Pydantic v2 модельдері, Jackson аннотациялары бар Java record, System.Text.Json үшін C# кластары, kotlinx.serialization үшін Kotlin data class, Swift Codable структуралары және serde үшін Rust структуралары.

Бір үлгі барлық өрісті сирек көрсетеді, сондықтан генератор берілген үлгілердің барлығын біріктіреді. Бірнеше құжатты қатарынан, JSON Lines түрінде немесе объектілер массиві ретінде қоюға болады: кейбір объектіде жоқ кілт міндетті емес болады, кейде null болатын кілт null болуы мүмкін өріске айналады, кейде ондық болатын бүтін сан float болады, ал шынымен аралас мәндер union немесе тілдің динамикалық JSON типі болады. Ұялаған объектілер өз атауымен жеке тип алады: orders — Order, addresses — Address болады, ал бірдей пішіндер бір рет жасалып, қайта қолданылады. Кілттері сан, UUID немесе күн болатын объектілер map түріне келтіріледі.

Өріс атаулары әр тілдің дәстүріне сай түрлендіріледі, ал first-name немесе class сияқты өзгеше JSON кілттері тиісті аннотация, alias немесе CodingKeys арқылы бастапқы атына байланады. Үлгідегі түсініктемелер мен соңғы үтірлерге рұқсат етіледі.

Нәтиже сіз берген үлгілерді сипаттайды; генератор үлгілеріңізде жоқ өрістер мен мәндерді білмейді, сондықтан пайдаланар алдында оны API құжаттамасымен салыстырып тексеріңіз.

Құпиялылық

Үлгілерді талдау мен кодты жасауды осы бетбелгідегі Web Worker орындайды, сондықтан жеке немесе ішкі деректері бар API жауаптары серверге жүктелмейді. Тіл мен атау параметрлері жергілікті жадта сақталады, ал қойған JSON сақталмайды.

Мүмкіндіктер

Көп үлгіні біріктіреді

Қойған барлық үлгіде жоқ кілттер міндетті емес, null мәндер null болуы мүмкін өріс болады.

9 тіл

TypeScript, Zod, Go, Python, Java, C#, Kotlin, Swift және Rust тілдері, атаулары әр тілдің дәстүріне сай.

Кілттерді сәйкестендіру бар

json тегтері, alias, @SerialName, @JsonProperty және CodingKeys түпнұсқа JSON атауларын сақтайды.

JSON үлгісінен типтер: жиі қойылатын сұрақтар

Қай өріс міндетті емес екенін қалай анықтайды?
Сол орындағы объектілердің кемінде біреуінде кілт болмаса, өріс міндетті емес болады. Бір объект қойсаңыз, барлық өріс міндетті болады, себебі қарама-қарсы ештеңе көрінбейді. Генератор қай кілттер бар-жоғын көруі үшін бірнеше нақты жауапты немесе жазбалар массивін қойыңыз. Барлық өрісті міндетті емес ету жартылай немесе patch деректері үшін қажет.
Мән кейде null болса не болады?
Өріс null болуы мүмкін типке айналады: TypeScript-те string | null, Go-да көрсеткіш, Python-да str | None, Kotlin мен Swift-те String?, Rust-та Option<String>, ал Java мен C#-та қораптағы немесе null болатын тип. Барлық үлгіде null болатын өрістің анықталатын типі жоқ, сондықтан ол тілдің белгісіз немесе динамикалық JSON типі болады.
Бүтін сандарым неге float болып кетті?
Бір үлгіде өріс мәні 7, ал басқасында 7.5 болса, тип екеуін де сыйғызуы керек, сондықтан ол float немесе double болады. 10.0 сияқты ондық нүктемен жазылған сандар да ондық саналады. TypeScript-те екеуі де number; Zod-та тек бүтін өріс z.number().int() арқылы тексеріледі.
Бұл quicktype-пен бірдей ме?
Ол сол мәселені өз генераторымен шешеді, ол толығымен браузеріңізде жұмыс істейді және қосымша мүмкіндіктер береді: TypedDict қоса үш Python стилі, Zod схемалары және бірнеше қойылған құжатты біріктіру. quicktype көбірек тілді қолдайды және JSON Schema оқи алады. Мұндағы тоғыз тіл үшін нәтиже қосымша орындалу көмекшілерінсіз құрастырылуға арналған.
Күндерді, enum немесе UUID мәндерін анықтай ала ма?
Жоқ. Жолдар жол күйінде қалады, себебі бірнеше үлгі болашақтағы барлық мән күн немесе бекітілген жиынның бірі болатынын дәлелдей алмайды. API кепілдік беретін жерде жасалған типті Date, time.Time, datetime, enum немесе UUID типіне қолмен ауыстырыңыз. Кілттері UUID, сан немесе күн болатын объектілер бұған қатысты емес: олар map болады.