JSON을 Swift로 변환
JSON 데이터를 Swift 코드로 변환합니다
JSON 입력
Swift 출력
JSON을 Swift로란?
REST API를 호출하는 iOS 또는 macOS 앱을 만들고 있나요? JSON이 반환되지만 Swift는 안전하게 디코딩하려면 명시적인 Codable structs가 필요합니다. 각 API 엔드포인트마다 수작업으로 structs를 작성하는 건 반복적이고 오류가 발생하기 쉽습니다. 이 도구는 JSON에서 Swift structs를 자동으로 생성하며, Codable 준수도 포함됩니다. 샘플 응답을 붙여넣으면 JSONDecoder에 바로 사용할 수 있는 타입을 얻을 수 있습니다.
변환은 브라우저에서 수행됩니다. 구조체 이름을 설정하고 Codable 사용 및 옵셔널 타입을 활성화할 수 있습니다. 서버로 전송되지 않습니다. 생성된 타입은 iOS, macOS 또는 서버 측 Swift 프로젝트의 시작점입니다.
JSON을 Swift로 변환이 도움이 되는 경우
REST API를 사용하는 iOS 또는 macOS 앱을 개발할 때 Codable 구조체를 여기에서 생성하세요. 파싱을 위해 JSONDecoder를 사용하세요. 샘플 응답을 붙여넣어 타입이 지정된 모델을 얻으세요.
이 도구 사용 방법
JSON 붙여넣기 또는 업로드
왼쪽 편집기에 JSON을 붙여넣거나 파일을 업로드합니다. 샘플 데이터를 보려면 샘플을 사용하세요. 구성에서 루트 구조체 이름을 설정하세요. Codable 적합성을 위해 Codable 사용을 활성화하고 선택적 필드를 위해 옵셔널 타입을 활성화하세요.
생성된 타입 확인
오른쪽 패널에 Swift 구조체 또는 클래스가 표시됩니다. 중첩 객체는 중첩 타입이 됩니다. 파싱을 위해 JSONDecoder().decode(YourType.self, from: data)를 사용하세요. JSON 키가 속성 이름과 다른 경우 CodingKeys를 추가하세요. 잘못된 JSON의 경우 먼저 JSON 검증기를 사용하세요.
JSON을 Swift로 변환 예시
다음은 JSON 객체에서 Swift 구조체를 생성하는 예시입니다.
예시: 구독자 레코드
JSON 입력:
생성된 Swift 출력:
JSON을 Swift로 변환이 도움이 되는 경우
REST API를 사용하는 iOS 또는 macOS 앱을 개발할 때 응답 페이로드에 대한 Swift 타입이 필요합니다. 샘플 응답을 여기에 붙여넣으면 URLSession 또는 Alamofire용 Codable 구조체가 생성됩니다. 서버 측 Swift(Vapor, Kitura)도 동일한 워크플로에서 이점을 얻습니다. 복잡하게 중첩된 JSON에 대해 수동으로 구조체를 작성하면 오류가 발생하기 쉽습니다. 이 도구는 샘플에서 구조를 도출합니다. 대용량 응답에서 특정 값을 추출하려면 명령줄에서 jq를 사용하세요. 검증을 위해 JSON 검증기를 사용하세요.
자주 묻는 질문
Swift의 Codable struct란 무엇인가요?
Codable은 Encodable & Decodable의 typealias입니다. Codable struct는 Swift의 내장 JSONDecoder와 JSONEncoder를 사용해 JSON으로 변환할 수 있습니다. iOS와 macOS 앱에서 JSON을 처리하는 현대적이고 권장되는 방식입니다. Apple의 Codable 가이드를 참조하세요.
Swift에서 JSON을 어떻게 디코딩하나요?
JSON과 일치하는 Codable struct를 만든 다음 JSONDecoder().decode(YourType.self, from: data)를 호출하세요. 여기서 struct를 생성하세요 — JSON을 붙여넣고 결과를 Xcode 프로젝트에 복사합니다.
Swift JSON 모델에서 struct와 class 중 무엇을 사용할까요?
struct는 값 타입이며 Swift에서 DTO와 JSON 모델에 선호됩니다 — 더 단순하고 스레드 세이프하며 Codable과 잘 맞습니다. 참조 의미론이나 상속이 필요한 경우 class를 사용하세요.
내 JSON 데이터가 서버로 전송되나요?
아니요. struct 생성은 완전히 브라우저에서 실행됩니다. JSON이 기기를 절대 떠나지 않으므로 API 키나 민감한 페이로드에도 안전합니다.
Alamofire와 함께 사용할 수 있나요?
네. Alamofire의 responseDecodable(of: YourType.self)는 모든 Codable 타입과 함께 작동합니다. 여기서 struct를 생성하고 Alamofire 응답 핸들러에 바로 연결하세요.