[swift] SwiftyJSON을 사용하여 JSON 데이터를 SQLite에 저장하기

이번 글에서는 SwiftyJSON 라이브러리를 사용하여 Swift 프로젝트에서 JSON 데이터를 SQLite 데이터베이스에 저장하는 방법을 알아보겠습니다.

1. SwiftyJSON 라이브러리 추가하기

SwiftyJSON은 Swift에서 JSON 데이터를 다루기 위한 간편하고 강력한 라이브러리입니다. 먼저 프로젝트에 SwiftyJSON을 추가하기 위해 Cocoapods를 사용하겠습니다. Podfile에 다음과 같이 라이브러리를 추가합니다.

pod 'SwiftyJSON'

그리고 터미널에서 다음 명령을 실행하여 라이브러리를 설치합니다.

pod install

2. SQLite 데이터베이스 설정하기

SQLite를 사용하기 위해 FMDB 라이브러리를 사용하겠습니다. Podfile에 다음과 같이 라이브러리를 추가합니다.

pod 'FMDB'

라이브러리를 설치한 후 AppDelegate.swift 파일에서 SQLite 데이터베이스를 설정합니다.

import UIKit
import FMDB

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?
    var databasePath: String!

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

        // SQLite 데이터베이스 파일 경로 설정
        let documentsDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
        self.databasePath = documentsDirectory.appendingPathComponent("myDatabase.db").path
        
        return true
    }

    // ...
}

3. SwiftyJSON으로 JSON 데이터 파싱하기

이제 SwiftyJSON을 사용하여 JSON 데이터를 파싱하는 방법을 알아보겠습니다. 예를 들어, 다음과 같은 JSON 데이터가 있다고 가정해보겠습니다.

{
  "name": "John Doe",
  "age": 25,
  "email": "john.doe@example.com"
}

위의 JSON 데이터를 파싱하기 위해 다음과 같은 코드를 작성합니다.

import SwiftyJSON

// JSON 데이터를 파싱하는 예제
let jsonString = """
{
  "name": "John Doe",
  "age": 25,
  "email": "john.doe@example.com"
}
"""

if let data = jsonString.data(using: .utf8) {
    let json = JSON(data: data)
    
    let name = json["name"].stringValue
    let age = json["age"].intValue
    let email = json["email"].stringValue
    
    // 파싱한 데이터를 SQLite에 저장하는 코드 작성
}

4. SQLite에 데이터 저장하기

마지막으로 SwiftyJSON을 사용하여 파싱한 데이터를 SQLite 데이터베이스에 저장하는 방법을 알아보겠습니다. AppDelegate.swift 파일에 다음 함수를 추가하여 데이터를 저장하는 코드를 작성합니다.

func saveDataToDatabase(name: String, age: Int, email: String) {
    let database = FMDatabase(path: databasePath)

    if database.open() {
        let insertQuery = "INSERT INTO users (name, age, email) VALUES (?, ?, ?)"
        let success = database.executeUpdate(insertQuery, withArgumentsIn: [name, age, email])

        if success {
            print("Data saved successfully!")
        } else {
            print("Error saving data!")
        }

        database.close()
    }
}

위의 코드에서는 users라는 테이블에 name, age, email 컬럼을 가진 데이터를 저장하는 예제입니다.

이제 SwiftyJSON으로 파싱한 데이터를 SQLite에 저장하려면 다음과 같이 코드를 작성합니다.

// SwiftyJSON으로 파싱한 데이터를 SQLite에 저장하는 예제
let name = json["name"].stringValue
let age = json["age"].intValue
let email = json["email"].stringValue

saveDataToDatabase(name: name, age: age, email: email)

마무리

이번에는 SwiftyJSON을 사용하여 JSON 데이터를 SQLite 데이터베이스에 저장하는 방법을 알아보았습니다. SwiftyJSON을 사용하면 간편하게 JSON 데이터를 파싱하고, FMDB를 사용하여 SQLite 데이터베이스에 데이터를 저장할 수 있습니다. 이를 바탕으로 다양한 Swift 프로젝트에서 JSON 데이터를 다룰 수 있습니다.