JSON (JavaScript Object Notation) e Generics no Delphi
Olá pessoal, mais um post sobre Delphi desta vez um demonstrar duas novas tecnologias que está sendo muito melhoradas no Delphi deste a versão 2009 até a ultima versão o Delphi XE.
Generics é uma forma de poder passar parâmetro de tipos para classes e métodos possibilitando assim reutilização de código por exemplo e JSON (JavaScript Object Notation) é uma forma de troca de dados entre aplicações semelhante ao XML porém com uma sintaxe bem mais simples e leve. O Delphi XE como algumas versões anteriores dá suporte a implementação usando JSON, em nosso exemplo vamos criar um método totalmente genêrico que recebe um objeto e um tipo e vamos usar o JSON para formatar este objeto e gravar no disco usando a nova classe de IO (input/output) do Delphi e um método de leitura deste arquivo no formato JSON e retornar o mesmo a um Objeto novamente passando o tipo do objeto e o caminho onde se encontra o arquivo.
Primeiro vamos criar uma nova classe do tipo TPessoa.
1 | type |
Para conseguirmos desenvolver nossos métodos temos antes que adicionar ao uses as unit’s sitadas abaixo, acima de cada unit tem a descrição de sua função no projeto.
1 | uses |
Agora vamos criar nossa classe que irá conter os métos necessários para carregar e salvar os dados no disco. O class antes da function indica que estes métodos serão státicos não é necessário instânciar a classe TJSONTools para usar estes métodos e a descrição T : class indica que este método recebe um tipo e que a variável obj passada por parâmetro é deste tipo, e na outra função que ela retorna o tipo especificado.
1 | type |
Agora nosso método que irá gravar no disco o objeto da classe descrita acima.
1 | class function TJSONTools.saveFileJSON<T>(obj: T; const filePath: string): Boolean; |
Agora o método responsável por ler o arquivo e carregar novamente os dados para um objeto.
1 | class function TJSONTools.loadFileJSON<T>(const filePath: string): T; |
Agora uma forma de poder usar nossa classe.
1 | var |
Este foi apenas um exemplo didático usando JSON e Generics no Delphi estes métodos ainda podem ser refatorados e criado validações para tratar possiveis erros de parâmetros que podem ser identificados criando testes unitários sobres estes métodos. Obrigado pela visita e até a próxima.