# Codable e parsing JSON (iOS) > Protocolo Codable, JSONEncoder, JSONDecoder, chaves personalizadas, JSON aninhado, estratégias de data - 20 perguntas de entrevista - Mid-Level - [Perguntas de entrevista: iOS](https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista.md) ## 1. O que é o protocolo Codable no Swift? **Resposta** Codable é um typealias que combina Encodable e Decodable. Permite serializar e desserializar estruturas Swift de/para JSON ou outros formatos. É o mecanismo padrão para manipular JSON no iOS sem frameworks externos. ## 2. Qual é a diferença entre Encodable e Decodable? **Resposta** Encodable serializa uma instância Swift em dados JSON (objeto para JSON). Decodable realiza a operação inversa, convertendo JSON em uma instância Swift. Esses protocolos são ortogonais: uma struct pode implementar um, o outro, ou ambos conforme necessário. ## 3. Para que serve o enum CodingKeys durante a decodificação JSON? **Resposta** CodingKeys mapeia as propriedades Swift para as chaves JSON reais. Permite lidar com diferenças de nomenclatura entre o código Swift (camelCase) e o JSON (snake_case). Sem CodingKeys, os nomes das propriedades devem corresponder exatamente às chaves JSON. ## Mais 17 perguntas disponiveis - Como criar uma instância JSONDecoder para decodificar JSON? - O que JSONEncoder.encode() retorna após uma serialização bem-sucedida? Cadastre-se gratis: https://sharpskill.dev/pt/login ## Outros temas de entrevista iOS - [Fundamentos de Swift](https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista/swift-basics.md): 25 perguntas, Junior - [Fundamentos da linguagem Swift](https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista/swift-language-essentials.md): 15 perguntas, Junior - [Fundamentos do UIKit](https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista/uikit-fundamentals.md): 18 perguntas, Junior - [Ciclo de vida do UIViewController](https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista/uiviewcontroller-lifecycle.md): 20 perguntas, Junior - [UserDefaults & Keychain](https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista/userdefaults-keychain.md): 20 perguntas, Junior - [Ciclo de vida do aplicativo](https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista/app-lifecycle.md): 20 perguntas, Junior - [Auto Layout & Constraints](https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista/auto-layout-constraints.md): 24 perguntas, Mid-Level - [UITableView & UICollectionView](https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista/uitableview-uicollectionview.md): 25 perguntas, Mid-Level - [Fundamentos de SwiftUI](https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista/swiftui-basics.md): 18 perguntas, Mid-Level - [Gerenciamento de estado no SwiftUI](https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista/swiftui-state-management.md): 22 perguntas, Mid-Level - [Navegação SwiftUI](https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista/swiftui-navigation.md): 18 perguntas, Mid-Level - [Networking & URLSession](https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista/networking-urlsession.md): 20 perguntas, Mid-Level - [Core Data](https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista/core-data.md): 22 perguntas, Mid-Level - [Programação orientada a protocolos](https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista/protocol-oriented-programming.md): 20 perguntas, Mid-Level - [Arquitetura MVVM](https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista/mvvm-architecture.md): 20 perguntas, Mid-Level - [Notificações Push](https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista/push-notifications.md): 18 perguntas, Mid-Level - [Testes unitários & XCTest](https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista/unit-testing-xctest.md): 20 perguntas, Mid-Level - [Testes de interface de usuário](https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista/ui-testing.md): 18 perguntas, Mid-Level - [Xcode e sistema de build](https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista/xcode-build-system.md): 16 perguntas, Mid-Level - [Swift Package Manager](https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista/swift-package-manager.md): 16 perguntas, Mid-Level - [Memory Management & ARC](https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista/memory-management-arc.md): 22 perguntas, Senior - [Combine Framework](https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista/combine-framework.md): 24 perguntas, Senior - [Concurrency & async/await](https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista/concurrency-async-await.md): 26 perguntas, Senior - [iOS Design Patterns](https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista/ios-design-patterns.md): 24 perguntas, Senior - [Otimização de desempenho](https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista/performance-optimization.md): 22 perguntas, Senior - [Segurança e criptografia](https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista/security-encryption.md): 20 perguntas, Senior - [SwiftUI Advanced](https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista/swiftui-advanced.md): 22 perguntas, Senior - [Arquitetura de aplicativos iOS](https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista/ios-app-architecture.md): 22 perguntas, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/pt/technologies/ios/perguntas-entrevista/codable-json-parsing