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

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

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

Крім того, версія 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 користувачам доступні наступні типи непідписаних номерів:

Кодувальник і декодер 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 іншими мовами.


Опубліковано: 17 травня 2021


Вибрати програмне забезпечення


Напишіть запит на програмне забезпечення нам у Viber
+380503703627


Контакти Ай Ті Про

info@itpro.ua
Телефон: +38 (044) 257-24-44