JSON #
Dalam Kotlin, penanganan JSON sering digunakan untuk mengirim dan menerima data dalam format JSON antara aplikasi dan server. Ada beberapa pustaka yang populer untuk penanganan JSON di Kotlin, termasuk Gson, kotlinx.serialization, dan Moshi. Berikut adalah penjelasan mendetail tentang masing-masing pustaka serta contoh penggunaannya.
Gson #
Gson adalah pustaka JSON dari Google untuk Java yang juga dapat digunakan dengan Kotlin. Gson memudahkan konversi objek Java/Kotlin ke format JSON dan sebaliknya.
Menambahkan Dependensi Gson #
Untuk menggunakan Gson di Kotlin, tambahkan dependensi berikut di file build.gradle.kts
:
dependencies {
implementation("com.google.code.gson:gson:2.10.1")
}
Contoh Penggunaan Gson #
-
Mengonversi Objek ke JSON
import com.google.gson.Gson data class Person(val name: String, val age: Int) fun main() { val person = Person("Alice", 30) val gson = Gson() val json = gson.toJson(person) println(json) // Output: {"name":"Alice","age":30} }
-
Mengonversi JSON ke Objek
import com.google.gson.Gson data class Person(val name: String, val age: Int) fun main() { val json = """{"name":"Bob","age":25}""" val gson = Gson() val person = gson.fromJson(json, Person::class.java) println(person) // Output: Person(name=Bob, age=25) }
kotlinx.serialization #
kotlinx.serialization
adalah pustaka resmi dari JetBrains untuk serialisasi dan deserialisasi data di Kotlin. Pustaka ini mendukung berbagai format, termasuk JSON, dan dirancang untuk bekerja secara langsung dengan Kotlin.
Menambahkan Dependensi kotlinx.serialization #
Untuk menggunakan kotlinx.serialization
, tambahkan dependensi berikut di file build.gradle.kts
:
plugins {
kotlin("plugin.serialization") version "1.9.10"
}
dependencies {
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.0")
}
Contoh Penggunaan kotlinx.serialization #
-
Mengonversi Objek ke JSON
import kotlinx.serialization.* import kotlinx.serialization.json.* @Serializable data class Person(val name: String, val age: Int) fun main() { val person = Person("Charlie", 28) val json = Json.encodeToString(person) println(json) // Output: {"name":"Charlie","age":28} }
-
Mengonversi JSON ke Objek
import kotlinx.serialization.* import kotlinx.serialization.json.* @Serializable data class Person(val name: String, val age: Int) fun main() { val json = """{"name":"Diana","age":35}""" val person = Json.decodeFromString<Person>(json) println(person) // Output: Person(name=Diana, age=35) }
Moshi #
Moshi adalah pustaka JSON dari Square yang juga dapat digunakan di Kotlin. Moshi menawarkan performa tinggi dan dukungan untuk tipe data Kotlin.
Menambahkan Dependensi Moshi #
Untuk menggunakan Moshi, tambahkan dependensi berikut di file build.gradle.kts
:
dependencies {
implementation("com.squareup.moshi:moshi:1.13.0")
implementation("com.squareup.moshi:moshi-kotlin:1.13.0")
}
Contoh Penggunaan Moshi #
-
Mengonversi Objek ke JSON
import com.squareup.moshi.Moshi import com.squareup.moshi.kotlin.reflect.KotlinJsonAdapterFactory data class Person(val name: String, val age: Int) fun main() { val moshi = Moshi.Builder().add(KotlinJsonAdapterFactory()).build() val jsonAdapter = moshi.adapter(Person::class.java) val person = Person("Eve", 40) val json = jsonAdapter.toJson(person) println(json) // Output: {"name":"Eve","age":40} }
-
Mengonversi JSON ke Objek
import com.squareup.moshi.Moshi import com.squareup.moshi.kotlin.reflect.KotlinJsonAdapterFactory data class Person(val name: String, val age: Int) fun main() { val moshi = Moshi.Builder().add(KotlinJsonAdapterFactory()).build() val jsonAdapter = moshi.adapter(Person::class.java) val json = """{"name":"Frank","age":22}""" val person = jsonAdapter.fromJson(json) println(person) // Output: Person(name=Frank, age=22) }
Kesimpulan #
Di Kotlin, Anda dapat menggunakan berbagai pustaka untuk penanganan JSON:
- Gson: Pustaka populer dari Google, mendukung konversi antara objek dan JSON dengan mudah.
- kotlinx.serialization: Pustaka resmi JetBrains yang terintegrasi dengan Kotlin dan mendukung berbagai format serialisasi.
- Moshi: Pustaka dari Square dengan performa tinggi dan dukungan untuk tipe data Kotlin.
Memilih pustaka yang tepat tergantung pada kebutuhan aplikasi Anda, seperti kemudahan penggunaan, performa, dan dukungan untuk fitur-fitur tertentu.