Escolar Documentos
Profissional Documentos
Cultura Documentos
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]
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.
www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=17000
4/4