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łaneModele 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ć
- Wklej JSONWklej odpowiedź JSON lub wczytaj przykład.
- Wybierz stylWybierz struct lub class, CodingKeys oraz to, czy dołączyć funkcje pomocnicze.
- Skopiuj do XcodeSkopiuj kod Swift lub pobierz plik .swift do swojego projektu.
Najczęściej zadawane pytania
Czy wygenerowane typy są Codable?
Codable, więc możesz od razu dekodować ją za pomocą JSONDecoder.Do czego służą jawne CodingKeys?
Czy mogę generować klasy zamiast struktur?
class, jeśli potrzebujesz semantyki referencyjnej, na przykład dla Core Data lub współpracy z Objective-C.