# Codable & Parsing JSON (iOS) > Codable protocol, JSONEncoder, JSONDecoder, custom keys, nested JSON, date strategies - 20 questions d'entretien - Confirmé - [Questions d'entretien: iOS](https://sharpskill.dev/fr/technologies/ios/questions-entretien.md) ## 1. Qu'est-ce que le protocole Codable dans Swift ? **Réponse** Codable est un alias typographique combinant Encodable et Decodable. Il permet de sérialiser et désérialiser des structures Swift vers/depuis JSON ou autres formats. C'est le mécanisme standard pour manipuler JSON en iOS sans framework externe. ## 2. Quelle est la différence entre Encodable et Decodable ? **Réponse** Encodable sérialise une instance Swift en données JSON (objet vers JSON). Decodable effectue l'opération inverse, convertissant JSON en instance Swift. Ces deux protocoles sont orthogonaux : une structure peut implémenter l'un, l'autre, ou les deux selon les besoins. ## 3. À quoi sert l'enum CodingKeys lors du décodage JSON ? **Réponse** CodingKeys mappe les propriétés Swift aux clés JSON réelles. Il permet de gérer les décalages de nommage entre le code Swift (camelCase) et le JSON (snake_case). Sans CodingKeys, les noms de propriétés doivent correspondre exactement aux clés JSON. ## 17 questions supplémentaires disponibles - Comment créer une instance JSONDecoder pour décoder du JSON ? - Que retourne JSONEncoder.encode() après sérialisation réussie ? S'inscrire gratuitement: https://sharpskill.dev/fr/login ## Autres sujets d'entretien iOS - [Les bases de Swift](https://sharpskill.dev/fr/technologies/ios/questions-entretien/swift-basics.md): 25 questions, Junior - [Essentiels du langage Swift](https://sharpskill.dev/fr/technologies/ios/questions-entretien/swift-language-essentials.md): 15 questions, Junior - [Fondamentaux UIKit](https://sharpskill.dev/fr/technologies/ios/questions-entretien/uikit-fundamentals.md): 18 questions, Junior - [Cycle de vie UIViewController](https://sharpskill.dev/fr/technologies/ios/questions-entretien/uiviewcontroller-lifecycle.md): 20 questions, Junior - [UserDefaults & Keychain](https://sharpskill.dev/fr/technologies/ios/questions-entretien/userdefaults-keychain.md): 20 questions, Junior - [Cycle de vie de l'application](https://sharpskill.dev/fr/technologies/ios/questions-entretien/app-lifecycle.md): 20 questions, Junior - [Auto Layout & Constraints](https://sharpskill.dev/fr/technologies/ios/questions-entretien/auto-layout-constraints.md): 24 questions, Confirmé - [UITableView & UICollectionView](https://sharpskill.dev/fr/technologies/ios/questions-entretien/uitableview-uicollectionview.md): 25 questions, Confirmé - [Les bases de SwiftUI](https://sharpskill.dev/fr/technologies/ios/questions-entretien/swiftui-basics.md): 18 questions, Confirmé - [Gestion d'état SwiftUI](https://sharpskill.dev/fr/technologies/ios/questions-entretien/swiftui-state-management.md): 22 questions, Confirmé - [Navigation SwiftUI](https://sharpskill.dev/fr/technologies/ios/questions-entretien/swiftui-navigation.md): 18 questions, Confirmé - [Networking & URLSession](https://sharpskill.dev/fr/technologies/ios/questions-entretien/networking-urlsession.md): 20 questions, Confirmé - [Core Data](https://sharpskill.dev/fr/technologies/ios/questions-entretien/core-data.md): 22 questions, Confirmé - [Programmation orientée protocoles](https://sharpskill.dev/fr/technologies/ios/questions-entretien/protocol-oriented-programming.md): 20 questions, Confirmé - [Architecture MVVM](https://sharpskill.dev/fr/technologies/ios/questions-entretien/mvvm-architecture.md): 20 questions, Confirmé - [Notifications Push](https://sharpskill.dev/fr/technologies/ios/questions-entretien/push-notifications.md): 18 questions, Confirmé - [Tests unitaires & XCTest](https://sharpskill.dev/fr/technologies/ios/questions-entretien/unit-testing-xctest.md): 20 questions, Confirmé - [Tests d'interface utilisateur](https://sharpskill.dev/fr/technologies/ios/questions-entretien/ui-testing.md): 18 questions, Confirmé - [Xcode & Système de build](https://sharpskill.dev/fr/technologies/ios/questions-entretien/xcode-build-system.md): 16 questions, Confirmé - [Swift Package Manager](https://sharpskill.dev/fr/technologies/ios/questions-entretien/swift-package-manager.md): 16 questions, Confirmé - [Memory Management & ARC](https://sharpskill.dev/fr/technologies/ios/questions-entretien/memory-management-arc.md): 22 questions, Senior - [Combine Framework](https://sharpskill.dev/fr/technologies/ios/questions-entretien/combine-framework.md): 24 questions, Senior - [Concurrency & async/await](https://sharpskill.dev/fr/technologies/ios/questions-entretien/concurrency-async-await.md): 26 questions, Senior - [iOS Design Patterns](https://sharpskill.dev/fr/technologies/ios/questions-entretien/ios-design-patterns.md): 24 questions, Senior - [Performance Optimization](https://sharpskill.dev/fr/technologies/ios/questions-entretien/performance-optimization.md): 22 questions, Senior - [Security & Encryption](https://sharpskill.dev/fr/technologies/ios/questions-entretien/security-encryption.md): 20 questions, Senior - [SwiftUI Advanced](https://sharpskill.dev/fr/technologies/ios/questions-entretien/swiftui-advanced.md): 22 questions, Senior - [iOS Application Architecture](https://sharpskill.dev/fr/technologies/ios/questions-entretien/ios-app-architecture.md): 22 questions, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/fr/technologies/ios/questions-entretien/codable-json-parsing