DT Dev Tools

Konwerter JSON na Swift — Generator Codable

Konwertuj JSON na struktury lub klasy Swift Codable online z CodingKeys, opcjonalnymi typami i zagnieżdżonymi typami. Gotowe dla JSONDecoder — za darmo i prywatnie.

🔒 Działa całkowicie w Twojej przeglądarce — nic nie jest przesyłane

Reklama

Modele Swift Codable z JSON

Protokół Codable w Swift sprowadza dekodowanie JSON do jednej linii — gdy tylko masz typy dokładnie odpowiadające ładunkowi danych. Ten konwerter JSON na Swift generuje te typy z przykładu. Każdy obiekt staje się typem struct (lub class) zgodnym z Codable, klucze stają się właściwościami w camelCase, zagnieżdżone obiekty — własnymi typami, tablice — typowanymi tablicami Swift, a wartości nieobecne lub równe null w części przykładu stają się opcjonalne. Jawne enumy CodingKeys mapują każdą właściwość z powrotem na oryginalny klucz JSON, więc API w snake_case są dekodowane bez żadnej własnej strategii.

Silnikiem jest quicktype, który łączy wszystkie elementy każdej tablicy, zanim wywnioskuje typy. Pole występujące tylko w części elementów nadal staje się właściwością opcjonalną, co pozwala uniknąć uciążliwego błędu dekodowania keyNotFound w czasie działania.

Struktury, klasy i funkcje pomocnicze

Domyślnie generowane są struktury, ponieważ typy wartościowe są idiomatyczne dla modeli w SwiftUI i większości nowoczesnego kodu iOS i macOS. Przełącz na klasy, gdy potrzebujesz semantyki referencyjnej lub współpracy z Objective-C. Domyślnie wynik zawiera też wygodne funkcje pomocnicze — inicjalizatory z danych i ciągów JSON, metody jsonData() i jsonString() oraz mutator with(...) — które ułatwiają używanie modeli w testach i podglądach. Zaznacz Types only, jeśli wolisz minimalny plik zawierający wyłącznie deklaracje Codable.

Wskazówki przed wklejeniem do Xcode

Użyj bogatego przykładu z kilkoma elementami tablicy i wypełnionymi polami opcjonalnymi. Zmień nazwę typu głównego z Root na coś sensownego, np. FeedResponse; pobrany plik użyje tej nazwy. Potem rozważ zamianę pól tekstowych o znanych wartościach na enumy, użycie Date z pasującą dateDecodingStrategy i oznaczenie właściwości jako var tam, gdzie potrzebujesz mutacji. Wszystko dzieje się lokalnie w Twojej przeglądarce, więc prywatne odpowiedzi API nigdy nie są przesyłane.

Jak używać

  1. Wklej JSONWklej odpowiedź JSON lub wczytaj przykład.
  2. Wybierz stylWybierz struct lub class, CodingKeys oraz to, czy dołączyć funkcje pomocnicze.
  3. Skopiuj do XcodeSkopiuj kod Swift lub pobierz plik .swift do swojego projektu.

Najczęściej zadawane pytania

Czy wygenerowane typy są Codable?
Tak. Każda struktura lub klasa jest zgodna z Codable, więc możesz od razu dekodować ją za pomocą JSONDecoder.
Do czego służą jawne CodingKeys?
Mapują nazwy właściwości Swift w camelCase na dokładne klucze JSON. Zostaw je włączone, gdy klucze używają snake_case lub innych nazw, które nie są poprawnymi identyfikatorami Swift.
Czy mogę generować klasy zamiast struktur?
Tak. Przełącz Types na class, jeśli potrzebujesz semantyki referencyjnej, na przykład dla Core Data lub współpracy z Objective-C.
Czy mój JSON jest przesyłany?
Nie. Cała konwersja działa w Twojej przeglądarce; nic nie jest wysyłane na serwer.
Reklama