상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - 코틀린에서 JSON 데이터를 처리하는 방법은?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
<a href='https://sangseek.com/sangseeks/코틀린/ko'>코틀린</a>에서 JSON 데이터를 처리하는 방법은 여러 가지가 있으며, 주로 사용하는 라이브러리로는 `Gson`, `Moshi`, `Kotl<a href='https://sangseek.com/sangseeks/inx/ko'>inx</a>.serialization` 등이 있습니다. 각 라이브러리는 JSON 데이터를 직렬화(객체를 JSON 문자열로 변환)하고 <a href='https://sangseek.com/sangseeks/역직렬화/ko'>역직렬화</a>(JSON 문자열을 객체로 변환)하는 기능을 제공합니다. 아래에서는 각 라이브러리의 <a href='https://sangseek.com/sangseeks/사용 방법/ko'>사용 방법</a>과 예제를 자세히 설명하겠습니다. 1. Gson Gson은 Google에서 제공하는 JSON 처리 라이브러리로, 간단하고 사용하기 쉬운 API를 제공합니다. Gradle 의존성 추가 ```groovy implementation 'com.google.code.gson:gson:2.8.8' ``` 데이터 클래스 정의 ```kotlin data class User(val name: String, val age: Int) ``` JSON 직렬화 및 역직렬화 ```kotlin import com.google.gson.Gson fun main() { val gson = Gson() // 객체를 JSON 문자열로 변환 val user = User("Alice", 30) val jsonString = gson.toJson(user) println(jsonString) // {"name":"Alice","age":30} // JSON 문자열을 객체로 변환 val userFromJson = gson.fromJson(jsonString, User::class.java) println(userFromJson) // User(name=Alice, age=30) } ``` 2. Moshi Moshi는 Square에서 개발한 JSON 처리 라이브러리로, Kotlin과의 호환성이 뛰어나고 Kotlin의 데이터 클래스와 잘 통합됩니다. Gradle 의존성 추가 ```groovy implementation 'com.squareup.moshi:moshi:1.12.0' implementation 'com.squareup.moshi:moshi-kotlin:1.12.0' ``` 데이터 클래스 정의 ```kotlin data class User(val name: String, val age: Int) ``` JSON 직렬화 및 역직렬화 ```kotlin import com.squareup.moshi.Moshi import com.squareup.moshi.kotlin.reflect.KotlinJsonAdapterFactory fun main() { val moshi = Moshi.Builder().add(KotlinJsonAdapterFactory()).build() val jsonAdapter = moshi.adapter(User::class.java) // 객체를 JSON 문자열로 변환 val user = User("Bob", 25) val jsonString = jsonAdapter.toJson(user) println(jsonString) // {"name":"Bob","age":25} // JSON 문자열을 객체로 변환 val userFromJson = jsonAdapter.fromJson(jsonString) println(userFromJson) // User(name=Bob, age=25) } ``` 3. Kotlinx.serialization Kotlinx.serialization은 Kotlin 공식 라이브러리로, Kotlin 언어에 최적화된 JSON 처리 기능을 제공합니다. 이 라이브러리는 Kotlin의 코루틴 및 <a href='https://sangseek.com/sangseeks/기타 기능/ko'>기타 기능</a>과 잘 통합됩니다. Gradle 의존성 추가 ```groovy implementation 'org.jetbrains.kotlinx:kotlinx-serialization-json:1.3.3' ``` 데이터 클래스 정의 ```kotlin import kotlinx.serialization.Serializable @Serializable data class User(val name: String, val age: Int) ``` JSON 직렬화 및 역직렬화 ```kotlin import kotlinx.serialization.encodeToString import kotlinx.serialization.decodeFromString import kotlinx.serialization.json.Json fun main() { val json = Json { <a href='https://sangseek.com/sangseeks/pretty/ko'>pretty</a>Print = true } // 객체를 JSON 문자열로 변환 val user = User("Charlie", 28) val jsonString = json.encodeToString(user) println(jsonString) // { "name": "Charlie", "age": 28 } // JSON 문자열을 객체로 변환 val userFromJson = json.decodeFromString<User>(jsonString) println(userFromJson) // User(name=Charlie, age=28) } ``` 결론 코틀린에서 JSON 데이터를 처리하는 방법은 다양하며, 선택한 라이브러리에 따라 사용법이 조금씩 다릅니다. `Gson`은 간단하고 널리 사용되며, `Moshi`는 Kotlin과의 호환성이 뛰어나고, `Kotlinx.serialization`은 Kotlin 언어에 최적화된 기능을 제공합니다. 각 라이브러리의 특성을 고려하여 프로젝트에 적합한 라이브러리를 선택하면 됩니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기