Spec-Zone.ru › Kotlin 2

Обзор сериализации JSON

Библиотека сериализации Kotlin позволяет легко преобразовывать объекты Kotlin в JSON и обратно. Класс Json — основной инструмент для этого. Он позволяет гибко настраивать создание и разбор JSON. Вы можете настроить экземпляры Json для обработки определённых особенностей JSON или использовать экземпляр по умолчанию для простых задач.

С помощью класса Json можно:

  • Сериализовать объекты Kotlin в строки JSON с помощью функции encodeToString().

  • Десериализовать строки JSON обратно в объекты Kotlin с помощью функции decodeFromString().

  • Работать напрямую с JsonElement при обработке сложных структур JSON с помощью функций encodeToJsonElement() и decodeFromJsonElement().

  • Использовать экспериментальные функции-расширения для сериализации и десериализации источников ввода-вывода без создания промежуточных строк. Это касается потоков JVM, а также типов kotlinx-io и Okio.

Прежде чем начать, импортируйте следующие объявления из библиотеки сериализации:

import kotlinx.serialization.*
import kotlinx.serialization.json.*

Вот простой пример использования экземпляра Json по умолчанию, который показывает, как работает сериализация JSON в Kotlin:

// Imports declarations from the serialization library
import kotlinx.serialization.*
import kotlinx.serialization.json.*

//sampleStart
@Serializable
data class User(val name: String, val age: Int)

fun main() {
    // Uses the default Json instance
    val json = Json

    // Creates a User object
    val user = User("Alice", 30)

    // Converts the User object to a JSON string
    val jsonString = json.encodeToString(user)
    println(jsonString)
    // {"name":"Alice","age":30}

    // Converts the JSON string back to a User object
    val deserializedUser = json.decodeFromString<User>(jsonString)
    println(deserializedUser)
    // User(name=Alice, age=30)
//sampleEnd
}

Помимо конфигурации по умолчанию, вы можете настроить экземпляр Json для конкретных случаев, например чтобы игнорировать неизвестные ключи:

// Imports declarations from the serialization library
import kotlinx.serialization.*
import kotlinx.serialization.json.*

//sampleStart
@Serializable
data class Project(val name: String)

// Configures a Json instance to ignore unknown keys
val customJson = Json {
    ignoreUnknownKeys = true
}

fun main() {
    val data = customJson.decodeFromString<Project>("""
        {"name":"kotlinx.serialization","language":"Kotlin"}
    """)
    println(data)
    // Project(name=kotlinx.serialization)
}
//sampleEnd

Что дальше

  • Узнайте, как настраивать экземпляры Json для различных сценариев сериализации и десериализации.

  • Изучите расширенную обработку элементов JSON, чтобы изменять данные JSON и работать с ними до их разбора или сериализации.

  • Узнайте, как преобразовывать JSON при сериализации и десериализации, чтобы лучше контролировать свои данные.

16 июня 2026 г.
Сериализация классовНастройка экземпляра Json

© 2010–2026 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/docs/serialization-configure-json-serialization.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API