You are on page 1of 4

23/04/13

Verso para impresso: TRABALHANDO COM TIPOS JSON NO DELPHI 2010 - PARTE 1
www.de vm e dia.com .br [ve rso para im pre sso]

TRABALHANDO COM TIPOS JSON NO DELPHI 2010 - PARTE 1

Neste artigo iremos trabalhar com os tipos nativos do delhi para notao JSON implementados na unit DBXJSON. Especialmente, iremos criar vrios tipos de dados em JSON, criar arrays e objetos do tipo JSON.
TRABALHANDO COM TIPOS JSON NO DELPHI 2010 Tipo didtico-prtico Requisitos: Delphi 2010; Neste artigo iremos trabalhar com os tipos nativos do delhi para notao JSON implementados na unit DBXJSON. Especialmente, iremos criar vrios tipos de dados em JSON, criar arrays e objetos do tipo JSON. Vamos prtica No delphi 2010 clique em File > New > VCL Forms Application - Delphi. Selecione o formulrio 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 formulrio coloque um boto e um Memo. Selecione o memo1 e no Object Inspector na propriedade Lines remova o contedo. Selecione o boto e no Object Inspector altere a propriedade Caption para Criando tipos JSON. Altere tambm a propriedade Name para BtnCriandoTiposJson. Clique duplo sobre o boto e codifique o procedimento para que fique de acordo com o cdigo 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 funo Value de um TJSONTrue retorna vazio pois invoca TJSONAncestor.Value o qual retorna uma string vazia Memo1.Lines.Add(jf.Value); //a funo 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 funo ToString Memo1.Lines.Add(jf.ToString); //portanto devemos usar a funo ToString end; No formulrio coloque um mais um boto.
www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=17000 1/4

23/04/13

Verso para impresso: TRABALHANDO COM TIPOS JSON NO DELPHI 2010 - PARTE 1

Selecione o boto e no Object Inspector altere a propriedade Caption para Um Objeto com trs pares. Altere tambm a propriedade Name para BtnUmObjetoComTresPares. Clique duplo sobre o boto e codifique o procedimento para que fique de acordo com o cdigo abaixo: procedure TForm1.BtnUmObjetoComTresParesClick(Sender: TObject); var jo : TJSONObject; begin Memo1.Clear; jo := TJSONObject.Create; //Na notao JSON, objetos so 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 Valor DELMAR jo.AddPair(TJSONPair.Create('Cidade', 'AJURICABA')); //Tambm podemos usar TJSONPair para criar um par jo.AddPair(TJSONPair.Create('Bairro', 'CENTRO')); Memo1.Lines.Add(jo.ToString); end; No formulrio coloque um mais um boto. Selecione o boto e no Object Inspector altere a propriedade Caption para Um array com trs elementos onde cada elemento um objeto contendo um nico par. Altere tambm a propriedade Name para BtnUmArrayCTresElemCadaElemEumObjContUmUnicoPar. Clique duplo sobre o boto e codifique o procedimento para que fique de acordo com o cdigo abaixo: procedure TForm1.BtnUmArrayCTresElemCadaElemEumObjContUmUnicoParClick( Sender: TObject); var //retorna um array com trs elementos onde cada elemento um objeto contendo um nico par ja: TJSONArray; jo1, jo2, jo3 : TJSONObject; begin Memo1.Clear; //Na notao JSON, arrays so 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 formulrio coloque um mais um boto. Selecione o boto e no Object Inspector altere a propriedade Caption para Um array com um elemento que um objeto contendo trs pares. Altere tambm a propriedade Name para BtnUmArrayComUmElementoQueEumObjetoContendoTresPares. Clique duplo sobre o boto e codifique o procedimento para que fique de acordo com o cdigo abaixo: procedure TForm1.BtnUmArrayComUmElementoQueEumObjetoContendoTresParesClick(Sender: TObject); var // retorna um array com um elemento que um objeto contendo trs pares ja: TJSONArray; jo1: TJSONObject; begin
www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=17000 2/4

23/04/13

Verso para impresso: TRABALHANDO COM TIPOS JSON NO DELPHI 2010 - PARTE 1

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 formulrio coloque um mais um boto. Selecione o boto e no Object Inspector altere a propriedade Caption para Um array com dois elementos onde cada elemento um objeto contendo trs pares. Altere tambm a propriedade Name para BtnUmArrayCDoisElemCadaElemEumObjContendoTresPares. Clique duplo sobre o boto e codifique o procedimento para que fique de acordo com o cdigo abaixo: procedure TForm1.BtnUmArrayCDoisElemCadaElemEumObjContendoTresParesClick(Sender: TObject); var // retorna um array com dois elementos onde cada elemento um objeto contendo trs 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 sugesto de como dispor os objetos no formulrio

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

3/4

23/04/13

Verso para impresso: TRABALHANDO COM TIPOS JSON NO DELPHI 2010 - PARTE 1

Salve o projeto, se desejar, em sua pasta preferida. Pressione F9 para compilar e executar o projeto. Clique em cada boto e observe os resultados. Abrao e at a prxima.

por DELMAR WICHNIESKI (VIDE OBSERVAO)


Tcnico em processamento de dados pela SETREM de Trs de Maio - RS (94-96) Bacharelado em Informtica pela UNIJUI de Iju - RS (97-00) Trabalha h 10 anos com engenharia de sistemas cliente/Servidor D3, D4 e D7. SQL, SQLs aninhadas e otimizao de SQL, Firebird 1.5 ao 2.1.3. Gesto escolar, processos de produo em farmcias de manipulao, Procedimento Operacional Padro POP para controle de estoque, processos de compra e venda, pedidos de compra e venda, nota fiscal modelo 1 e 1A, Nota Fiscal Eletrnica, automao OLE (Excel e word), migrao e importao de dados, anlise de sistemas, documentao, Entidade-Relacionamento, restries de Integridade Referencial. Tambm j compilou kernel de linux, instalou muitas distros e montou com conectiva linux uma intranet com 10 PCs usando estaes diskless e boot remoto via EPRON. Em breve mais www.devmedia.com.br/articles/viewcomp.asp?comp=17000

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

4/4

You might also like