[IOS] JSON 데이터를 struct로 변환 하는 방법
JSON 데이터를 Swift의 struct
로 변환하는 방법은 크게 두 가지 방법이 있습니다.
- Codable 프로토콜을 사용하는 방법: Swift에서는
Codable
프로토콜을 사용하여 JSON 데이터를struct
로 변환하거나, 반대로struct
를 JSON 데이터로 변환하는 것을 쉽게 처리할 수 있습니다. 이를 통해 JSON 데이터와 Swift의struct
사이의 매핑을 간편하게 할 수 있습니다.
아래는 Codable
프로토콜을 사용하여 JSON 데이터를 struct
로 변환하는 예제 코드입니다:
import Foundation
// JSON 데이터와 매핑될 구조체를 정의합니다.
struct Person: Codable {
let name: String
let age: Int
}
// JSON 데이터를 Swift의 struct로 변환하는 함수
func parseJSONToStruct() {
let jsonString = """
{
"name": "John Doe",
"age": 30
}
"""
let jsonData = jsonString.data(using: .utf8)
do {
let decoder = JSONDecoder()
let person = try decoder.decode(Person.self, from: jsonData!)
print(person)
} catch {
print("Error decoding JSON: \(error)")
}
}
- SwiftyJSON 라이브러리를 사용하는 방법: SwiftyJSON은 JSON 데이터를 쉽게 다룰 수 있도록 도와주는 라이브러리입니다. 이를 사용하면 JSON 데이터를 직접
struct
로 변환하지 않고도 손쉽게 필요한 데이터를 추출할 수 있습니다.
아래는 SwiftyJSON을 사용하여 JSON 데이터를 struct
로 변환하는 예제 코드입니다:
import Foundation
import SwiftyJSON
// JSON 데이터와 매핑될 구조체를 정의합니다.
struct Person {
let name: String
let age: Int
}
// JSON 데이터를 Swift의 struct로 변환하는 함수
func parseJSONToStruct() {
let jsonString = """
{
"name": "John Doe",
"age": 30
}
"""
if let jsonData = jsonString.data(using: .utf8) {
let json = try! JSON(data: jsonData)
let person = Person(
name: json["name"].stringValue,
age: json["age"].intValue
)
print(person)
}
}
위의 예제 코드에서는 간단한 JSON 데이터를 Person
구조체로 변환하고 있습니다. 두 가지 방법 모두 유용하며, Codable
프로토콜을 사용하는 방법이 Swift에서 기본적으로 지원되기 때문에 주로 권장됩니다. 하지만 SwiftyJSON과 같은 라이브러리를 사용하여 JSON 데이터를 조작하는 것도 유용할 수 있습니다.