Android

Json / 직렬화 / 역직렬화

김한토 2024. 5. 16. 20:02
반응형

serialization : 직렬화

 

객체를 json 포맷으로 바꾼다 => 직렬

 

json 데이터를 받아올 때, 객체로 변환해야 한다. => 역직렬화

 

Gson -> Java 100%

https://github.com/google/gson

 

GitHub - google/gson: A Java serialization/deserialization library to convert Java Objects into JSON and back

A Java serialization/deserialization library to convert Java Objects into JSON and back - google/gson

github.com

 

dependencies {
  implementation 'com.google.code.gson:gson:2.10.1'
}

 

json이 제공해주는 함수를 호출해서 객체로 변환해서 데이터를 사용한다.

 

네트워크 통신을 할때, 데이터를 전송하거나, 데이터를 가지고 와서 UI를 업데이트 할때는 역직렬화 과정이 필요하다.

//역직렬화

val json = "{"\"name\": \"hanto\", \"age\" : 222}"
val gson = Gson()
val result = gson.fromJson(json, User::class.java)

//User은 예시

역직렬화 과정을 거쳐서 코틀린 객체로 변환하는 과정이 있어야지만 전달받은 데이터를 기반으로 해서 UI를 구현하는 것이 간편해진다.

 

//직렬화

val user = USer("hanto", 222)
val gson = Gson
val result = gson.toJson(user)

 

Moshi -> Java + Kotlin

https://github.com/square/moshi

 

GitHub - square/moshi: A modern JSON library for Kotlin and Java.

A modern JSON library for Kotlin and Java. Contribute to square/moshi development by creating an account on GitHub.

github.com

 

implementation("com.squareup.moshi:moshi:1.15.1")

 

Moshi는 json 어뎁터를 만들어야한다.

 

 

Koltin Serialization -> Kotlin 100%

https://github.com/Kotlin/kotlinx.serialization

 

GitHub - Kotlin/kotlinx.serialization: Kotlin multiplatform / multi-format serialization

Kotlin multiplatform / multi-format serialization - GitHub - Kotlin/kotlinx.serialization: Kotlin multiplatform / multi-format serialization

github.com

 

 

반응형

'Android' 카테고리의 다른 글

코루틴  (0) 2024.05.24
동기 / 비동기  (0) 2024.05.20
Android 리사이클러뷰  (0) 2024.05.06
[삽질][Kotlin] Android Studio Google Social Login  (1) 2024.04.07
Layout / View  (0) 2024.04.02