Sobes.tech
Junior

Koji se okviri obično koriste za obradu JSON u Kotlinu?

sobes.tech АИ

Одговор од АИ

На Kotlin обично се користе следећи фрејмворци за обраду JSON:

  • Kotlin Serialization: Нативна библиотека од JetBrains, интегрише се са компајлером. Подржава различите формате, укључујући JSON, ProtoBuf, CBOR. Захтева анотацију класа података.

    import kotlinx.serialization.*
    import kotlinx.serialization.json.*
    
    @Serializable // Анотација
    data class User(val name: String, val age: Int)
    
    fun main() {
        val user = User("Alice", 30)
        val jsonString = Json.encodeToString(user) // Серијализација
        println(jsonString) // Испис: {"name":"Alice","age":30}
    
        val decodedUser = Json.decodeFromString<User>(jsonString) // Десеријализација
        println(decodedUser) // Испис: User(name=Alice, age=30)
    }
    
  • Jackson: Моћан и зрели фрејмворк са широким могућностима конфигурације и подршком за различите формате података. Широко се користи у Java-екосистему.

    import com.fasterxml.jackson.databind.ObjectMapper
    
    data class User(val name: String, val age: Int)
    
    fun main() {
        val mapper = ObjectMapper()
        val user = User("Alice", 30)
        val jsonString = mapper.writeValueAsString(user) // Серијализација
        println(jsonString) // Испис: {"name":"Alice","age":30}
    
        val decodedUser = mapper.readValue(jsonString, User::class.java) // Десеријализација
        println(decodedUser) // Испис: User(name=Alice, age=30)
    }
    
  • Gson: Још један популаран фрејмворк од Google. Једноставан за коришћење, погодан за већину задатака.

    import com.google.gson.Gson
    
    data class User(val name: String, val age: Int)
    
    fun main() {
        val gson = Gson()
        val user = User("Alice", 30)
        val jsonString = gson.toJson(user) // Серијализација
        println(jsonString) // Испис: {"name":"Alice","age":30}
    
        val decodedUser = gson.fromJson(jsonString, User::class.java) // Десеријализација
        println(decodedUser) // Испис: User(name=Alice, age=30)
    }
    

Избор фрејмворка зависи од пројекта и преференција. Kotlin Serialization често је преферирани избор у чистим Kotlin пројектима због нативне интеграције. Jackson и Gson су добри избори ако се већ користе у пројекту или је потребан широк спектар функција и флексибилност конфигурације.