moshi codegen 예제

Moshi는 JSON 데이터를 쉽게 직렬화 및 역직렬화할 수 있는 라이브러리입니다. Moshi Codegen은 Moshi와 함께 사용되어 JSON 스키마를 기반으로 자동으로 모델 클래스를 생성합니다. 이렇게 생성된 클래스는 Moshi를 사용하여 JSON 데이터를 객체로 변환하거나 객체를 JSON으로 변환하는 데 사용할 수 있습니다.

아래는 Moshi Codegen을 사용하여 모델 클래스를 자동 생성하는 예제입니다.

  1. 먼저, Moshi Codegen을 Gradle의 종속성으로 추가해야 합니다. 프로젝트의 build.gradle 파일에 다음을 추가합니다:
dependencies {
    implementation 'com.squareup.moshi:moshi:1.12.0'
    kapt 'com.squareup.moshi:moshi-kotlin-codegen:1.12.0'
}
  1. 그런 다음, JSON 스키마를 작성합니다. 예를 들어, Person 객체를 나타내는 스키마는 다음과 같을 수 있습니다:
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string"
    },
    "age": {
      "type": "integer"
    }
  }
}
  1. Moshi Codegen을 사용하여 모델 클래스를 생성합니다. Kotlin 파일에 다음과 같은 코드를 작성합니다:
import com.squareup.moshi.JsonClass

@JsonClass(generateAdapter = true)
data class Person(val name: String, val age: Int)
  1. 이제 Moshi를 사용하여 JSON 데이터를 객체로 변환하거나, 객체를 JSON으로 변환할 수 있습니다. 예를 들어, 다음과 같은 코드로 JSON을 파싱할 수 있습니다:
import com.squareup.moshi.Moshi

val json = "{\"name\":\"John Doe\",\"age\":30}"
val moshi = Moshi.Builder().build()
val adapter = moshi.adapter(Person::class.java)
val person = adapter.fromJson(json)

println(person?.name) // 출력: John Doe
println(person?.age) // 출력: 30

이렇게 Moshi Codegen을 사용하여 모델 클래스를 자동 생성하면 JSON 데이터와 객체 간의 변환을 쉽고 안전하게 처리할 수 있습니다. Moshi Codegen은 개발자들이 반복적이고 번거로운 작업을 줄여주어 생산성을 향상시키는 데 도움을 줍니다.

#Moshi #MoshiCodegen