Назад к вопросам
Junior
133
questionbank

Как работать с JSON в Kotlin?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

В Kotlin работа с JSON чаще всего осуществляется с использованием сторонних библиотек. Наиболее популярные:

  1. Jackson: Мощная и гибкая.
  2. Gson: Простая в использовании, от Google.
  3. kotlinx.serialization: Нативная сериализация/десериализация Kotlin.

Пример использования kotlinx.serialization:

  1. Добавление зависимостей в 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")
    }
    
  2. Создание data class для моделирования JSON-структуры:

    // Data class для десериализации JSON
    import kotlinx.serialization.Serializable
    
    @Serializable // Аннотация для сериализации/десериализации
    data class User(
        val name: String,
        val age: Int
    )
    
  3. Десериализация 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
    
  4. Сериализация объекта в 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 проектов благодаря своей нативности.