![]() |
| Mão aberta com a palma voltada para cima e com vários símbolos saindo dela. |
Índice
Introdução
A serialização e desserialização JSON em Delphi permitem converter objetos Delphi em JSON e reconverter esses dados para objetos novamente, facilitando a troca de informações entre sistemas, APIs e aplicações distribuídas. Esse processo é amplamente utilizado em integrações REST, persistência de dados e comunicação entre diferentes tecnologias.
Em aplicações modernas, a serialização e desserialização são fundamentais para garantir interoperabilidade, eficiência e padronização no transporte de dados. Em Delphi, esses recursos possibilitam transformar estruturas complexas de objetos em JSON de forma segura e organizada, além de permitir o tratamento adequado de erros durante esse processo.
Neste artigo, você vai aprender como realizar a serialização e desserialização de objetos Delphi para JSON e vice-versa, utilizando boas práticas, exemplos práticos e código-fonte para download, abordando também a estruturação dos dados e os erros mais comuns encontrados nesse tipo de implementação.
O que é Serialização?
Serialização é o processo de converter um objeto em um formato que pode ser facilmente armazenado ou transmitido, como JSON, XML, ou binário. No caso do JSON, um dos formatos mais utilizados na web, a serialização envolve transformar um objeto Delphi em uma string JSON que pode ser enviada através de uma API, armazenada em um arquivo, ou transmitida por uma rede.
Esse processo é essencial para a troca de dados entre diferentes sistemas e plataformas, garantindo que as informações sejam mantidas de maneira íntegra e possam ser reconstruídas no destino. Além disso, a serialização é fundamental em aplicações distribuídas onde a comunicação entre componentes é crítica. Ela também facilita o armazenamento de estados de objetos em bancos de dados ou arquivos, contribuindo para a persistência de dados e a recuperação de informações quando necessário.
O que é Desserialização?
Desserialização é o processo inverso, onde uma string JSON (ou outro formato de dados serializados) é convertida de volta em um objeto Delphi. Isso é especialmente útil quando recebemos dados de uma API ou lemos um arquivo JSON e precisamos manipular esses dados como objetos dentro do Delphi.
A desserialização facilita a interação com serviços web modernos, permitindo que a aplicação Delphi se comunique de forma eficaz com outras aplicações ou sistemas. Para realizar essa operação, utilizam-se bibliotecas específicas como JSON Delphi Library (SuperObject) ou a biblioteca nativa de JSON do Delphi. Essas ferramentas permitem não apenas a conversão de dados, mas também oferecem funcionalidades adicionais para validação, tratamento de erros e conversão de tipos, tornando o desenvolvimento de software mais robusto e eficiente.
Convertendo Objetos Delphi para JSON (Serialização)
Para serializar um objeto Delphi para JSON, podemos usar a unidade System.JSON, que faz parte da biblioteca padrão do Delphi. Vamos começar com um exemplo básico de como serializar um objeto simples.
uses
System.SysUtils, System.JSON, System.Classes, REST.JSON;
type
TPerson = class
private
FName: string;
FAge: Integer;
public
property Name: string read FName write FName;
property Age: Integer read FAge write FAge;
end;
procedure SerializeToJson;
var
Person: TPerson;
JsonString: string;
begin
Person := TPerson.Create;
try
Person.Name := 'John Doe';
Person.Age := 30;
// Serializando o objeto para JSON
JsonString := TJson.ObjectToJsonString(Person);
WriteLn(JsonString); // {"Name":"John Doe","Age":30}
finally
Person.Free;
end;
end;
begin
SerializeToJson;
end.
Explicação do Código
- Definição da Classe TPerson: Definimos uma classe
TPersoncom duas propriedades:NameeAge. - Criação do Objeto: Criamos uma instância da classe
TPerson, atribuímos valores às suas propriedades e, em seguida, usamos o métodoTJson.ObjectToJsonStringpara serializar o objeto em uma string JSON. - Resultado: A string JSON gerada é
{"Name":"John Doe","Age":30}, que representa o objetoPersonem formato JSON.
Convertendo JSON para Objetos Delphi (Desserialização)
Agora, vamos desserializar a string JSON de volta para um objeto Delphi. Isso é útil quando recebemos dados de um serviço web ou lemos um arquivo JSON e queremos manipulá-los como objetos.
uses
System.SysUtils, System.JSON, REST.JSON;
procedure DeserializeFromJson;
var
JsonString: string;
Person: TPerson;
begin
JsonString := '{"Name":"John Doe","Age":30}';
// Desserializando o JSON para um objeto Delphi
Person := TJson.JsonToObject<TPerson>(JsonString);
try
WriteLn('Name: ' + Person.Name); // John Doe
WriteLn('Age: ' + IntToStr(Person.Age)); // 30
finally
Person.Free;
end;
end;
begin
DeserializeFromJson;
end.
Explicação do Código
- String JSON: Temos uma string JSON
{"Name":"John Doe","Age":30}que representa um objetoTPerson. - Desserialização: Usamos o método
TJson.JsonToObject<TPerson>para desserializar a string JSON em uma instância da classeTPerson. - Manipulação dos Dados: Agora podemos acessar as propriedades
NameeAgedo objetoPersoncomo se ele tivesse sido criado diretamente no Delphi.
Veja abaixo uma ilustração do projeto:
![]() |
| Ilustração do projeto. |
Código fonte do exemplo
Você pode fazer o download do exemplo do projeto através do repositório do github:
https://github.com/Gisele-de-Melo/Serializacao_Desserializacao_JSON
Boas Práticas
- Validação de Dados: Sempre valide os dados ao desserializar JSON para objetos Delphi. Certifique-se de que o JSON é válido e contém os campos esperados para evitar erros de execução.
- Gerenciamento de Memória: Utilize try/finally ou smart pointers para garantir que os objetos sejam liberados corretamente após a desserialização.
- Estrutura de Dados: Mantenha uma estrutura clara e organizada para suas classes, facilitando o processo de serialização e desserialização. Evite classes com muitas propriedades aninhadas, pois isso pode dificultar a manutenção e depuração do código.
- Tratamento de Exceções: Adicione tratamento de exceções para capturar erros durante a serialização e desserialização, especialmente ao lidar com dados de fontes externas.
Conclusão
A serialização e desserialização de objetos Delphi para JSON é uma técnica poderosa que permite que os desenvolvedores trabalhem de forma eficiente com dados estruturados. Ao seguir boas práticas e usar as ferramentas adequadas fornecidas pelo Delphi, você pode simplificar a troca de dados em suas aplicações, garantindo que elas sejam robustas, seguras e fáceis de manter.
Com esses exemplos, você agora possui uma base sólida para implementar a serialização e desserialização em seus projetos Delphi, aproveitando ao máximo as capacidades dessa linguagem para manipulação de dados JSON.

.png)
Nenhum comentário:
Postar um comentário