Serialização de Kotlin

Serialização de Kotlin
Compartilhar código entre plataformas não é possível. Io, transformações, rosqueamento e serialização, para mencionar alguns, são todos tratados de maneira diferente em cada plataforma que você deseja apoiar. Já existem várias bibliotecas que suportam a serialização de Kotlin e podem até produzir o código Kotlin, com o moshi da Square sendo o mais conhecido.

Neste artigo, teremos uma breve discussão sobre a serialização de Kotlin.

O que são serialização e desserialização em Kotlin?

A serialização é a técnica de transformar os dados de um aplicativo em um formato que pode ser enviado em uma rede ou pode ser salvo no banco de dados ou arquivo. A desserialização, por outro lado, é o ato de extrair dados de um local remoto e transformá-los em um objeto de tempo de execução. Ambos são componentes necessários na maioria dos aplicativos que interagem com dados com partes externas.

JSON e Buffers de protocolo são dois exemplos de formatos de serialização de dados que são amplamente utilizados. Eles permitem que os dados fluam entre os sistemas construídos em qualquer linguagem moderna, porque são idiomas e agnósticos da plataforma.

Os recursos de serialização de dados em Kotlin podem ser encontrados em um componente independente chamado Kotlinx. serialização. As bibliotecas de tempo de execução e o plugin-org gradle.jetbrains.Kotlin.plugar.serialização- são os dois componentes principais.

Bibliotecas de serialização de Kotlin

Todas as bibliotecas de serialização de Kotlin estão contidas na organização.pacote jetbrains. Kotlinx é um nome para um grupo de pessoas. Eles têm sufixos que representam o formato de serialização e começam com Kotlinx-Serialização.

Exemplos:

A serialização JSON para projetos de Kotlin é fornecida pela ORG.jetbrains.Kotlinx: Kotlinx-Serialização-JSON.
A serialização do CBOR é fornecida pela ORG.jetbrains.Kotlinx: Kotlinx-Serialização-CBor.

Você não precisa adicionar manualmente artefatos específicos da plataforma porque eles são tratados automaticamente. Os projetos JVM, JS, nativos e plataformas cruzados usam as mesmas dependências.

Como utilizar a serialização de Kotlin no código

Antes de prosseguir com o código de serialização de Kotlin, verifique se o seu script de construção está configurado para permitir que você utilize ferramentas de serialização de Kotlin em seu projeto.

Na sua construção de projeto.Gradle.FILE KTS Use o Kotlin (“Plugin.serialização ”) no bloco de plug -in.

Então, em sua construção.gradle (.KTS) Arquivo, adicione a dependência da biblioteca de tempo de execução “Org.jetbrains.Kotlinx: Kotlinx-Serialização-JSON: 1.0.0 "para o seu bloco de dependentes.

Para entender a serialização de Kotlin, você deve dar uma olhada nos seguintes exemplos:

Exemplo # 1: Programar para serializar a instância de Kotlin em JSON

Temos a API de serialização que nos ajudará a trabalhar em nosso código. O Kotlinx.Serialização e seus sub -pacotes de recursos, incluindo Kotlinx.serialização.JSON, inclua a API. Há outra biblioteca “JSON.CodetoString ”para usar, que codifica strings para JSON.

Nós importamos as bibliotecas do Kotlinx.serialização. Primeiro, anotamos uma aula com @Serializable. Declaramos uma classe de dados aqui com o nome "dados". Os dados da classe chamam um construtor com duas variáveis. As variáveis ​​são representadas com a palavra -chave "val" e atribuem um nome "nome" e "idade". A variável "Nome" é definida com a propriedade Type "String" e a variável "Age" é definida com a propriedade "int" do tipo.

Após a declaração da classe de dados, usamos @Optin, que é um espaço global. A abordagem de opção de Kotlin permite identificar APIs que devem ser utilizadas com cautela - ou não. Se você fizer uma declaração (uma classe, uma função, uma propriedade ou qualquer outra coisa), a opção de opção necessária, usá-la resultará em um aviso ou erro no código, exigindo que o usuário opte ativamente. Isso garantirá que a decisão de usar a API no site de uso seja feita conscientemente.

Aqui, passamos um marcador experimental da API. Em seguida, temos a função principal definida na qual criamos uma variável "myinfo". A variável "myinfo" é chamada JSON.CodetoString no qual o objeto passou como um parâmetro é serializado e codificado em uma string json. Como resultado, você receberá uma string formatada por JSON, representando o estado atual do objeto. Ao usar a função Kotlin Println, imprimiremos os valores das variáveis ​​“Myinfo”.

A saída está no formato JSON mostrado na tela do console abaixo.

Exemplo # 2: Programe para serializar e desserialize objetos em Kotlin

A serialização é a conversão de um objeto em um fluxo de bytes ou uma string enquanto a deserialização é a restauração desse fluxo em um novo objeto.

No código acima, temos uma implementação de uma interface serializável que permite que Kotlin lide automaticamente.

A biblioteca Java.IO significa que importamos todas as classes do pacote de entrada e saída para o código. Em seguida, declaramos uma classe como "jogadores" que tem uma interface serializável implementada. Os objetos de "jogadores" da classe agora podem ser transformados em fluxos. O construtor é chamado para os "jogadores" da classe e criamos um "jogador" de objeto que é mantido privado e define uma propriedade do tipo de string.

Depois disso, temos uma palavra -chave "Substituir" com a função ToString (). A explicação da substituição explica o programa e evita erros. Uma função ToString () representa os elementos de um objeto em um formato legível é importante para identificar e corrigir problemas de programação. A substituição ToString () retornará a string do objeto "jogadores". Temos o bloco init no qual inicializamos um objeto "jogadores" com os elementos da string usando a função HashSetOf. Em seguida, temos outro “tênis” de classe serializado em que definimos seus objetos criando seu construtor.

Criamos um objeto "jogador" na classe "tênis" e chamamos a classe dos jogadores. No bloco ToString () substituto, definimos os campos de um player de objeto. Depois disso, temos uma função principal na qual declaramos uma variável "tênis" e definimos seus campos. Agora, usando a função writeObject () da classe ObjectOutputStream, converta o objeto em um formulário serializado e use a função readObject () para gerar um novo objeto a partir dos bytes.

Na tela do terminal, a saída é exibida.

Conclusão

O objetivo deste guia do artigo é mostrar o conceito de serialização de Kotlin na língua Kotlin. Discutimos o tópico de serialização e desserialização e como utilizar as bibliotecas de serialização de Kotlin. Também cobrimos os exemplos com o código de corrida para você.