+38/050/370-3627
+38/093/220-0872
+38/044/257-2444
Новини

JetBrains анонсувала бібліотеку kotlinx.serialization 1.2

JetBrains оголосила про бібліотеку kotlinx.serialization 1.2

JetBrains представила бібліотеку kotlinx.serialization 1.2! JetBrains внесли ряд удосконалень у нову версію бібліотеки багатоплатформної серіалізації:

  • Серіалізація в JSON тепер набагато швидша. У версії 1.2 розбір JSON в безпечні для тексту об'єкти Kotlin і перетворення об'єктів Kotlin в їх текстові представлення може бути в два рази швидше.
  • Підтримка нових елементів системи типів Kotlin введена 1.5. Непідписані класи значень і чисел можуть бути перетворені в JSON і з нього так само, як і будь-який інший клас Kotlin.
  • Нова документація API полегшує вивчення можливостей kotlinx.serialization.

Крім того, версія 1.2 додає підтримку JSON альтернативних назв полів і вводить новий експериментальний підхід з автоматичною генерацією схем Protobuf з класів Kotlin. 

Прискорене кодування та декодування JSON

Перетворення класів Kotlin в рядки JSON і з них є однією з найпопулярніших функцій kotlinx.serialization

В версии 1.2 внутренняя структура библиотеки kotlinx.serialization была полностью переработана, и в результате производительность двух этих важнейших функций значительно выросла.

Сразу после перехода на новую версию библиотеки скорость выполнения стандартных задач кодирования и декодирования может вырасти вдвое.

Стабільна серіалізація в JSON для непідписаних класів значень і типів чисел

Kotlin 1.5.0 вводить два корисних доповнення: класи значень і непідписані типи чисел. Версія kotlinx.serialization 1.2 надає їм повну підтримку кодування і декодування JSON

Підтримка класів вартості

Класи значень (раніше звані вбудованими класами) — це спосіб обгортання інших типів об'єктів Kotlin (наприклад, чисел) безпечним для тексту способом і без додаткового навантаження на запущений код. Таким чином, код можна зробити більш виразним і безпечним без втрати продуктивності.

Вбудована серіалізація в JSON тепер працює і з класами значень. Як і з іншими класами Kotlin, вам просто потрібно додати . классу значений  @Serializable kotlinx.serialization 

Підтримка непідписаних номерів

Непідписані номери - це функціональність, додана в стандартну бібліотеку Kotlin. У них передбачені види і операції з ненегативними числами. Після виходу Kotlin 1.5.0 користувачам доступні наступні типи непідписаних номерів:

  • UByte зі значеннями від 0 до 255;
  • UShort зі значеннями від 0 до 65535;
  • UInt, зі значеннями від 0 до 2^32 – 1;
  • ULong, зі значеннями від 0 до 2^64 – 1.

Кодувальник і декодер JSON в бібліотеці kotlinx.serialization тепер підтримують ці типи за замовчуванням. Як і інші типи чисел, непідписані цілочисельні значення серіалізуються в простому числовому поданні (так само, як при виклику .toString), без кадрування, обтікання або перетворення в підписаний тип.

Підтримка альтернативних назв полів JSON

Іноді доводиться розбирати поля JSON, які мають різні імена, але однакові значення, наприклад, для забезпечення зворотної сумісності. Нова анотація @JsonNames дозволяє призначати альтернативні імена полям JSON, які будуть використовуватися при розшифровці.

Протобуф: експериментально створення діаграм з класів Котліна

Protocol Buffers (Protobuf) — двійковий формат для серіалізації структурованих даних, розроблений компанією Google. Природно, двійковий формат більш економічний, ніж JSON або XML, при цьому він також забезпечує незалежну від мови структуру, яку можна використовувати для зв'язку між додатками.

Бібліотека  kotlinx.serializationдозволяє використовувати багатоплатформну серіалізацію Protobuf (з семантикою proto2) в експериментальному режимі стабільності . Як і у випадку з іншими форматами, клас може бути анотований як @Serializable і використовувати вбудовані методиencode  / методи decode 

Використовуючи класи Котліна як джерело істини (поряд з можливими індивідуальними настройками),kotlinx.serialization  він може створити двійкову схему даних, щоб зв'язок між різними додатками Kotlin в форматі protobuf була лаконічною і зручною.

Крім того, kotlinx.serialization 1.2 включає в себе експериментальний генератор схем для Protocol Buffers. Він дозволяє створювати файли класів .protoданих Kotlin, які потім можуть бути використані для створення виглядів схеми зв'язку на інших мовах, включаючи Python, C++ і TypeScript.

Інструкцію з використання нового схематичного генератора дивіться в документації .

Після того, як ви створите файл .proto , ви можете зберегти його в репозиторій і використовувати для створення виглядів класів Kotlin іншими мовами.

Інші новини