JSON ke Swift Struct
Hasilkan Swift struct Codable dari JSON, gratis, di browser Anda.
Untuk apa alat ini
Dari JSON ke Swift Codable Struct
Siap untuk iOS dan SwiftUI
Menghasilkan struct yang kompatibel dengan URLSession, Alamofire, SwiftUI, dan Combine. Tempel langsung ke Xcode.
100% pribadi
JSON API Anda tidak pernah meninggalkan browser. Tanpa pendaftaran, tanpa telemetri.
Codable yang benar
CodingKeys otomatis untuk snake_case, Optional untuk nullable, tipe yang benar (Int, Double, Bool). Kode yang idiomatis.
Instan
Struct dihasilkan secara real time saat Anda mengetik. Tanpa tombol, tanpa menunggu.
Cara kerjanya
Tiga langkah, tanpa kerumitan
Tempel JSON Anda
Tempel JSON dari API atau respons web Anda. Bekerja dengan objek bersarang, array, dan struktur JSON valid apa pun.
Pembuatan instan
Alat ini menghasilkan Swift struct yang memenuhi protokol Codable secara otomatis, dengan CodingKeys bila diperlukan.
Salin kodenya
Salin struct yang dihasilkan dan gunakan langsung di proyek iOS, macOS, atau SwiftUI Anda.
FAQ
Ada pertanyaan?
Codable adalah alias tipe yang diperkenalkan dalam Swift 4 pada WWDC 2017 yang menggabungkan dua protokol: Encodable yang dapat dikonversi ke format eksternal seperti JSON dan Decodable yang dapat dibuat dari format eksternal. Tipe yang memenuhi Codable dapat melakukan serialisasi dan deserialisasi data. Pemenuhan protokol diperoleh secara otomatis melalui sintesis compiler jika semua properti juga memenuhi Codable.
Untuk model data JSON, struct lebih disukai karena beberapa alasan: struct adalah value type yang menyalin alih-alih mereferensikan sehingga menghindari masalah shared state; compiler dapat mengoptimalkannya lebih baik; dan dalam SwiftUI, struct bekerja lebih baik dengan model data reaktif. Class (reference type) memiliki tempatnya saat Anda membutuhkan pewarisan atau identitas objek, tetapi untuk model API struct adalah praktik yang direkomendasikan.
CodingKeys adalah enum bersarang yang memetakan nama properti Swift ke nama kunci dalam JSON. Ini diperlukan ketika nama JSON yang biasanya snake_case dalam REST API berbeda dari konvensi Swift yaitu camelCase. Misalnya, jika JSON memiliki first_name, CodingKey memetakan kunci tersebut ke field firstName dalam struct. Tanpa CodingKeys, Swift mengharapkan nama JSON cocok persis dengan nama properti.
Di Swift, tipe Optional yang ditandai dengan ? dapat memiliki nilai atau bernilai nil. Ketika field JSON dapat tidak ada atau bernilai null, properti struct dideklarasikan sebagai Optional misalnya var email: String? alih-alih var email: String. JSONDecoder Foundation secara otomatis menangani deserialisasi: jika kunci tidak ada dalam JSON atau nilainya null, properti diatur ke nil tanpa memunculkan error.
Alur kerja URLSession + Codable yang umum adalah: URLSession.shared.dataTask mengembalikan Data; JSONDecoder().decode(MyStruct.self, from: data) mengonversi Data ke struct; hasilnya digunakan di UI pada main thread. Dengan Swift 5.5+ dan async/await, gunakan let data = try await URLSession.shared.data(for: request) diikuti let object = try JSONDecoder().decode(MyStruct.self, from: data). Pola ini adalah fondasi semua integrasi API dalam iOS modern.
Swift untuk iOS/macOS, protokol Codable tahun 2017, dan integrasi API dengan SwiftUI
Swift diperkenalkan oleh Apple di WWDC 2014 sebagai penerus Objective-C untuk pengembangan aplikasi di iOS, macOS, watchOS, dan tvOS. Dengan diperkenalkannya Codable dalam Swift 4 di WWDC 2017, bekerja dengan JSON disederhanakan secara radikal. Sebelum Codable, pengembang menggunakan library pihak ketiga seperti SwiftyJSON atau ekstensi Codable Alamofire. Dengan Codable native, Anda hanya membutuhkan JSONDecoder dan struct yang diketik dengan baik tanpa dependensi eksternal.
SwiftUI yang diperkenalkan di WWDC 2019 memperkuat penggunaan struct sebagai model data. Arsitektur SwiftUI berbasis value type dan protokol View sebagai struct sangat cocok dengan model Codable. Pola seperti MVVM di SwiftUI menggunakan @Published dalam ViewModel ObservableObject dengan struct Codable sebagai model, menciptakan aliran data yang dapat diprediksi dan dapat diuji.
Dengan Swift 5.5 di WWDC 2021 dan diperkenalkannya async/await, mengonsumsi REST API menjadi lebih bersih. URLSession.shared.data(for:) kini merupakan fungsi async yang menghilangkan completion handler bersarang. Dikombinasikan dengan JSONDecoder, pola fetch dan decode yang lengkap hanya memerlukan 3 baris kode. Alat ini menghasilkan struct Codable yang diperlukan untuk pola tersebut, memproses semuanya di browser Anda tanpa mengirimkan data ke server mana pun.