Junior
Чӣ гуна бо JSON дар Kotlin кор кардан мумкин аст?
sobes.tech AI
Ҷавоб аз AI
Дар Kotlin, кор бо JSON одатан бо истифода аз китобхонаҳои тарафи сеюм анҷом дода мешавад. Беҳтаринҳо:
- Jackson: Қувватманд ва чандир.
- Gson: Осон дар истифода, аз Google.
- kotlinx.serialization: Сериализатсия/десериализатсияи маҳаллӣ барои Kotlin.
Маслиҳат барои истифодаи kotlinx.serialization:
-
Ба
build.gradle.ktsвобастагиро илова кунед:// build.gradle.kts plugins { kotlin("jvm") version "1.9.22" kotlin("plugin.serialization") version "1.9.22" } repositories { mavenCentral() } dependencies { implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.0") } -
Барои моделсозии сохтори JSON, класс data эҷод кунед:
// Data class барои десериализатсияи JSON import kotlinx.serialization.Serializable @Serializable // Анотация барои сериализатсия/десериализатсия data class User( val name: String, val age: Int ) -
Сатрии JSON-ро ба объект десериализатсия кунед:
// Десериализатсияи сатрии JSON import kotlinx.serialization.json.Json val jsonString = """{"name":"Alice","age":30}""" val user = Json.decodeFromString<User>(jsonString) // user.name хоҳад буд "Alice", user.age хоҳад буд 30 -
Объектро ба сатрии JSON сериализатсия кунед:
// Сериализатсия кардани объект ба сатрии JSON import kotlinx.serialization.json.Json val userToSerialize = User("Bob", 25) val jsonOutput = Json.encodeToString(userToSerialize) // jsonOutput хоҳад буд {"name":"Bob","age":25}
Интихоби китобхона вобаста ба талаботи лоиҳа KMP (Kotlin Multiplatform), самаранокӣ ва осонии истифода мебошад. kotlinx.serialization барои лоиҳаҳои KMP интихоби беҳтарин аст, зеро он маҳаллӣ мебошад.