Kokie dažniausiai naudojami framework'ai JSON apdorojimui Kotlin?
sobes.tech AI
Atsakymas iš AI
Kotlin dažniausiai naudojami šie JSON apdorojimo karkasai:
-
Kotlin Serialization: Nativus JetBrains biblioteka, integruojasi su kompiliatoriumi. Palaiko įvairius formatus, įskaitant JSON, ProtoBuf, CBOR. Reikalauja duomenų klasių anotacijų.
import kotlinx.serialization.* import kotlinx.serialization.json.* @Serializable // Anotacija data class User(val name: String, val age: Int) fun main() { val user = User("Alice", 30) val jsonString = Json.encodeToString(user) // Serializacija println(jsonString) // Išvestis: {"name":"Alice","age":30} val decodedUser = Json.decodeFromString<User>(jsonString) // Deserializacija println(decodedUser) // Išvestis: User(name=Alice, age=30) } -
Jackson: Galingas ir subrendęs karkasas su plačiomis konfigūracijos galimybėmis ir palaikymu įvairiems duomenų formatams. Plačiai naudojamas Java ekosistemoje.
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) // Serializacija println(jsonString) // Išvestis: {"name":"Alice","age":30} val decodedUser = mapper.readValue(jsonString, User::class.java) // Deserializacija println(decodedUser) // Išvestis: User(name=Alice, age=30) } -
Gson: Dar vienas populiarus Google karkasas. Paprastas naudoti, tinkamas daugeliui užduočių.
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) // Serializacija println(jsonString) // Išvestis: {"name":"Alice","age":30} val decodedUser = gson.fromJson(jsonString, User::class.java) // Deserializacija println(decodedUser) // Išvestis: User(name=Alice, age=30) }
Pasirinkimas priklauso nuo projekto ir pageidavimų. Kotlin Serialization dažnai yra pageidaujamas pasirinkimas grynuose Kotlin projektuose dėl natūralios integracijos. Jackson ir Gson yra geri variantai, jei jie jau naudojami projekte arba reikalingas platus funkcijų rinkinys ir lankstumas konfigūracijoje.