[IOS] JSON 데이터를 struct로 변환 하는 방법

JSON 데이터를 Swift의 struct로 변환하는 방법은 크게 두 가지 방법이 있습니다.

  1. 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)")
    }
}
  1. 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 데이터를 조작하는 것도 유용할 수 있습니다.