Kotlin:
JSON과 함께 일하기

어떻게 사용하나요:

Kotlin은 JSON을 위한 내장 지원을 포함하지 않지만 Gson (Google 제공) 및 Kotlinx.serialization (JetBrains 제공)과 같은 타사 라이브러리의 강력한 기능을 활용합니다. 다음은 JSON을 사용하기 위해 두 가지 라이브러리 모두를 사용하는 방법입니다.

Gson 사용하기

build.gradle 파일에 Gson 의존성을 추가합니다:

implementation 'com.google.code.gson:gson:2.8.9'

JSON 문자열을 객체로 파싱하고 그 반대로 하는 방법:

import com.google.gson.Gson

// 데이터 클래스 정의
data class User(val name: String, val age: Int)

fun main() {
    val gson = Gson()

    // 직렬화
    val json = gson.toJson(User("John Doe", 30))
    println(json)  // 출력: {"name":"John Doe","age":30}

    // 역직렬화
    val user: User = gson.fromJson(json, User::class.java)
    println(user)  // 출력: User(name=John Doe, age=30)
}

Kotlinx.serialization 사용하기

먼저, build.gradle에 의존성을 포함합니다:

implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.3.3"

그 후, 빌드 스크립트 상단에 kotlinx-serialization 플러그인을 적용합니다:

plugins {
    kotlin("jvm") version "1.6.10"
    kotlin("plugin.serialization") version "1.6.10"
}

Kotlinx.serialization을 사용한 직렬화 및 역직렬화:

import kotlinx.serialization.*
import kotlinx.serialization.json.*

// 직렬화 가능한 데이터 클래스 정의
@Serializable
data class User(val name: String, val age: Int)

fun main() {
    // 직렬화
    val json = Json.encodeToString(User("Jane Doe", 28))
    println(json)  // 출력: {"name":"Jane Doe","age":28}

    // 역직렬화
    val user = Json.decodeFromString<User>(json)
    println(user)  // 출력: User(name=Jane Doe, age=28)
}

Gson과 Kotlinx.serialization 모두 Kotlin 애플리케이션에서 JSON을 사용하는 것을 단순화하지만, 어느 것을 선택할지는 특정 프로젝트 요구사항과 개인적인 선호도에 따라 달라집니다.