Versão para impressão_ TRABALHANDO COM TIPOS JSON NO DELPHI 2010 - PARTE 1

4
23/04/13 Versão para impressão: TRABALHANDO COM TIPOS JSON NO DELPHI 2010 - PARTE 1 www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=17000 1/4 www.devmedia.com.br [versão para impressão] TRABALHANDO COM TIPOS JSON NO DELPHI 2010 - PARTE 1 Neste artigo iremos trabalhar com os tipos nativos do delhi para notação JSON implementados na unit DBXJSON. Especialmente, iremos criar vários tipos de dados em JSON, criar arrays e objetos do tipo JSON. TRABALHANDO COM TIPOS JSON NO DELPHI 2010 Tipo didático-prático Requisitos: Delphi 2010; Neste artigo iremos trabalhar com os tipos nativos do delhi para notação JSON implementados na unit DBXJSON. Especialmente, iremos criar vários tipos de dados em JSON, criar arrays e objetos do tipo JSON. Vamos à prática No delphi 2010 clique em File > New > VCL Forms Application - Delphi. Selecione o formulário e no Object Inspector altere a propriedade Caption para TRABALHANDO COM TIPOS JSON NO DELPHI 2010 - PARTE 1 Adicione no uses da unit a unit DBXJSON; No formulário coloque um botão e um Memo. Selecione o memo1 e no Object Inspector na propriedade Lines remova o conteúdo. Selecione o botão e no Object Inspector altere a propriedade Caption para Criando tipos JSON. Altere também a propriedade Name para BtnCriandoTiposJson. Clique duplo sobre o botão e codifique o procedimento para que fique de acordo com o código abaixo: procedure TForm1.BtnCriandoTiposJsonClick(Sender: TObject); var js: TJSONString; jn1: TJSONNumber; jn2: TJSONNumber; jt: TJSONTrue; jf: TJSONFalse; begin Memo1.Clear; js := TJSONString.Create('Esta é uma string JSON'); jn1 := TJSONNumber.Create(15); jn2 := TJSONNumber.Create(1240.75); jt := TJSONTrue.Create; jf := TJSONFalse.Create; Memo1.Lines.Add(js.Value); Memo1.Lines.Add(jn1.Value); //pegando como string Memo1.Lines.Add(FloatToStr(jn1.AsDouble)); //pegando como Double Memo1.Lines.Add(jn2.Value); //pegando como string Memo1.Lines.Add(FloatToStr(jn2.AsDouble)); //pegando como Double Memo1.Lines.Add(jt.Value); //a função Value de um TJSONTrue retorna vazio pois invoca TJSONAncestor.Value o qual retorna uma string vazia Memo1.Lines.Add(jf.Value); //a função Value de um TJSONFalse retorna vazio pois invoca TJSONAncestor.Value o qual retorna uma string vazia Memo1.Lines.Add(jt.ToString); //portanto devemos usar a função ToString Memo1.Lines.Add(jf.ToString); //portanto devemos usar a função ToString end; No formulário coloque um mais um botão.

Transcript of Versão para impressão_ TRABALHANDO COM TIPOS JSON NO DELPHI 2010 - PARTE 1

Page 1: Versão para impressão_ TRABALHANDO COM TIPOS JSON NO DELPHI 2010 - PARTE 1

23/04/13 Versão para impressão: TRABALHANDO COM TIPOS JSON NO DELPHI 2010 - PARTE 1

www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=17000 1/4

www.devmedia.com.br [versão para impressão]

TRABALHANDO COM TIPOS JSON NO DELPHI 2010 - PARTE 1Neste artigo iremos trabalhar com os tipos nativos do delhi para notação JSON implementados naunit DBXJSON. Especialmente, iremos criar vários tipos de dados em JSON, criar arrays e objetosdo tipo JSON.

TRABALHANDO COM TIPOS JSON NO DELPHI 2010

Tipo didático-prático

Requisitos:Delphi 2010;

Neste artigo iremos trabalhar com os tipos nativos do delhi para notação JSON implementados na unit DBXJSON.Especialmente, iremos criar vários tipos de dados em JSON, criar arrays e objetos do tipo JSON.

Vamos à prática

No delphi 2010 clique em File > New > VCL Forms Application - Delphi.

Selecione o formulário e no Object Inspector altere a propriedade Caption para TRABALHANDO COM TIPOS JSON NODELPHI 2010 - PARTE 1

Adicione no uses da unit a unit DBXJSON;

No formulário coloque um botão e um Memo.

Selecione o memo1 e no Object Inspector na propriedade Lines remova o conteúdo.

Selecione o botão e no Object Inspector altere a propriedade Caption para Criando tipos JSON. Altere também apropriedade Name para BtnCriandoTiposJson.

Clique duplo sobre o botão e codifique o procedimento para que fique de acordo com o código abaixo:

procedure TForm1.BtnCriandoTiposJsonClick(Sender: TObject);var js: TJSONString; jn1: TJSONNumber; jn2: TJSONNumber; jt: TJSONTrue; jf: TJSONFalse;begin Memo1.Clear; js := TJSONString.Create('Esta é uma string JSON'); jn1 := TJSONNumber.Create(15); jn2 := TJSONNumber.Create(1240.75); jt := TJSONTrue.Create; jf := TJSONFalse.Create;

Memo1.Lines.Add(js.Value);

Memo1.Lines.Add(jn1.Value); //pegando como string Memo1.Lines.Add(FloatToStr(jn1.AsDouble)); //pegando como Double

Memo1.Lines.Add(jn2.Value); //pegando como string Memo1.Lines.Add(FloatToStr(jn2.AsDouble)); //pegando como Double

Memo1.Lines.Add(jt.Value); //a função Value de um TJSONTrue retorna vazio pois invoca TJSONAncestor.Value o qualretorna uma string vazia Memo1.Lines.Add(jf.Value); //a função Value de um TJSONFalse retorna vazio pois invoca TJSONAncestor.Value o qualretorna uma string vazia Memo1.Lines.Add(jt.ToString); //portanto devemos usar a função ToString Memo1.Lines.Add(jf.ToString); //portanto devemos usar a função ToStringend;

No formulário coloque um mais um botão.

Page 2: Versão para impressão_ TRABALHANDO COM TIPOS JSON NO DELPHI 2010 - PARTE 1

23/04/13 Versão para impressão: TRABALHANDO COM TIPOS JSON NO DELPHI 2010 - PARTE 1

www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=17000 2/4

Selecione o botão e no Object Inspector altere a propriedade Caption para Um Objeto com três pares. Altere também apropriedade Name para BtnUmObjetoComTresPares.

Clique duplo sobre o botão e codifique o procedimento para que fique de acordo com o código abaixo:

procedure TForm1.BtnUmObjetoComTresParesClick(Sender: TObject);var jo : TJSONObject;begin Memo1.Clear; jo := TJSONObject.Create; //Na notação JSON, objetos são delimitados por {} //e podem conter diversos pares separados por , //sendo que cada par é formado por chave e valor jo.AddPair('Nome', TJSONString.Create('DELMAR')); //AddPair adiciona ao JSONObject um par com chave Nome e ValorDELMAR jo.AddPair(TJSONPair.Create('Cidade', 'AJURICABA')); //Também podemos usar TJSONPair para criar um par jo.AddPair(TJSONPair.Create('Bairro', 'CENTRO')); Memo1.Lines.Add(jo.ToString);end;

No formulário coloque um mais um botão.

Selecione o botão e no Object Inspector altere a propriedade Caption para Um array com três elementos onde cadaelemento é um objeto contendo um único par. Altere também a

propriedade Name para BtnUmArrayCTresElemCadaElemEumObjContUmUnicoPar.

Clique duplo sobre o botão e codifique o procedimento para que fique de acordo com o código abaixo:

procedure TForm1.BtnUmArrayCTresElemCadaElemEumObjContUmUnicoParClick( Sender: TObject);var //retorna um array com três elementos onde cada elemento é um objeto contendo um único par ja: TJSONArray; jo1, jo2, jo3 : TJSONObject;begin Memo1.Clear; //Na notação JSON, arrays são delimitados por [] //e podem conter diversos elementos separados por , ja := TJSONArray.Create;

jo1 := TJSONObject.Create; jo1.AddPair('Nome', TJSONString.Create('DELMAR'));

jo2 := TJSONObject.Create; jo2.AddPair(TJSONPair.Create('Nome', 'DEVMEDIA'));

jo3 := TJSONObject.Create; jo3.AddPair(TJSONPair.Create('Nome', 'DALVAN'));

ja.AddElement(jo1); //a procedure AddElemento adiciona um elemento ao JSONArray ja.AddElement(jo2); ja.AddElement(jo3);

Memo1.Lines.Add(ja.ToString);end;

No formulário coloque um mais um botão.

Selecione o botão e no Object Inspector altere a propriedade Caption para Um array com um elemento que é umobjeto contendo três pares. Altere também a propriedade Name paraBtnUmArrayComUmElementoQueEumObjetoContendoTresPares.

Clique duplo sobre o botão e codifique o procedimento para que fique de acordo com o código abaixo:

procedure TForm1.BtnUmArrayComUmElementoQueEumObjetoContendoTresParesClick(Sender: TObject);var // retorna um array com um elemento que é um objeto contendo três pares ja: TJSONArray; jo1: TJSONObject;begin

Page 3: Versão para impressão_ TRABALHANDO COM TIPOS JSON NO DELPHI 2010 - PARTE 1

23/04/13 Versão para impressão: TRABALHANDO COM TIPOS JSON NO DELPHI 2010 - PARTE 1

www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=17000 3/4

Memo1.Clear; ja := TJSONArray.Create; jo1 := TJSONObject.Create; jo1.AddPair('Nome', TJSONString.Create('DELMAR')); jo1.AddPair(TJSONPair.Create('Cidade', 'AJURICABA')); jo1.AddPair(TJSONPair.Create('Bairro', 'CENTRO')); ja.AddElement(jo1); Memo1.Lines.Add(ja.ToString);end;

No formulário coloque um mais um botão.

Selecione o botão e no Object Inspector altere a propriedade Caption para Um array com dois elementos onde cadaelemento é um objeto contendo três pares. Altere também a propriedade Name paraBtnUmArrayCDoisElemCadaElemEumObjContendoTresPares.

Clique duplo sobre o botão e codifique o procedimento para que fique de acordo com o código abaixo:

procedure TForm1.BtnUmArrayCDoisElemCadaElemEumObjContendoTresParesClick(Sender: TObject);var // retorna um array com dois elementos onde cada elemento é um objeto contendo três pares ja: TJSONArray; jo1, jo2 : TJSONObject;begin Memo1.Clear; ja := TJSONArray.Create;

jo1 := TJSONObject.Create; jo1.AddPair('Nome', TJSONString.Create('DELMAR')); jo1.AddPair(TJSONPair.Create('Cidade', 'AJURICABA')); jo1.AddPair(TJSONPair.Create('Bairro', 'CENTRO'));

jo2 := TJSONObject.Create; jo2.AddPair('Nome', TJSONString.Create('DALVAN')); jo2.AddPair(TJSONPair.Create('Cidade', 'IJUÍ')); jo2.AddPair(TJSONPair.Create('Bairro', 'JARDIM'));

ja.AddElement(jo1); ja.AddElement(jo2);

Memo1.Lines.Add(ja.ToString);end;

Abaixo segue uma sugestão de como dispor os objetos no formulário

Page 4: Versão para impressão_ TRABALHANDO COM TIPOS JSON NO DELPHI 2010 - PARTE 1

23/04/13 Versão para impressão: TRABALHANDO COM TIPOS JSON NO DELPHI 2010 - PARTE 1

www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=17000 4/4

Salve o projeto, se desejar, em sua pasta preferida.

Pressione F9 para compilar e executar o projeto.

Clique em cada botão e observe os resultados.

Abraço e até a próxima.

por DELMAR WICHNIESKI (VIDE OBSERVAÇÃO)

Técnico em processamento de dados pela SETREM de Três de Maio - RS (94-96) Bacharelado em Informática pela UNIJUIde Ijuí - RS (97-00) Trabalha há 10 anos com engenharia de sistemas cliente/Servidor D3, D4 e D7. SQL, SQLs aninhadase otimização de SQL, Firebird 1.5 ao 2.1.3. Gestão escolar, processos de produção em farmácias de manipulação,Procedimento Operacional Padrão POP para controle de estoque, processos de compra e venda, pedidos de compra evenda, nota fiscal modelo 1 e 1A, Nota Fiscal Eletrônica, automação OLE (Excel e word), migração e importação dedados, análise de sistemas, documentação, Entidade-Relacionamento, restrições de Integridade Referencial. Também jácompilou kernel de linux, instalou muitas distros e montou com conectiva linux uma intranet com 10 PCs usando estaçõesdiskless e boot remoto via EPRON. Em breve mais

www.devmedia.com.br/articles/viewcomp.asp?comp=17000