Kādi ietvari parasti tiek izmantoti JSON apstrādei Kotlin?
sobes.tech AI
Atbilde no AI
Kotlin parasti izmanto šādus JSON apstrādes ietvarus:
-
Kotlin Serialization: Nativā JetBrains bibliotēka, integrējas ar kompilatoru. Atbalsta dažādus formātus, ieskaitot JSON, ProtoBuf, CBOR. Prasās datu klases anotācijas.
import kotlinx.serialization.* import kotlinx.serialization.json.* @Serializable // Anotācija data class User(val name: String, val age: Int) fun main() { val user = User("Alice", 30) val jsonString = Json.encodeToString(user) // Seriālizācija println(jsonString) // Izvade: {"name":"Alice","age":30} val decodedUser = Json.decodeFromString<User>(jsonString) // Dezseriālizācija println(decodedUser) // Izvade: User(name=Alice, age=30) } -
Jackson: Spēcīgs un nobriedis ietvars ar plašām konfigurācijas iespējām un atbalstu dažādiem datu formātiem. Plaši lietots Java ekosistēmā.
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) // Seriālizācija println(jsonString) // Izvade: {"name":"Alice","age":30} val decodedUser = mapper.readValue(jsonString, User::class.java) // Dezseriālizācija println(decodedUser) // Izvade: User(name=Alice, age=30) } -
Gson: Vēl viens populārs Google ietvars. Vienkārši lietojams, piemērots lielākajai daļai uzdevumu.
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) // Seriālizācija println(jsonString) // Izvade: {"name":"Alice","age":30} val decodedUser = gson.fromJson(jsonString, User::class.java) // Dezseriālizācija println(decodedUser) // Izvade: User(name=Alice, age=30) }
Izvēle ir atkarīga no projekta un priekšrocībām. Kotlin Serialization bieži ir vēlams izvēle tīros Kotlin projektos, pateicoties nativai integrācijai. Jackson un Gson ir labi varianti, ja tie jau tiek izmantoti projektā vai ir nepieciešams plašs funkciju klāsts un elastīga konfigurācija.