Montar JSON em Delphi
Oi pessoal, tudo bem?
Como posso fazer este JSON em Delphi?
Obrigado!
{ "InformacoesConta": { "Contas": { "Contas": [ { "Info1": "8595", "Info2": "2959", "Info3": 0, "Info4": 51, "Info5": "30/11/2015", "Info6": "XSPWXG KPIUODEHYZB 15112463481", "Info7": 211.57, "Info8": "GODOFREDO R", "Info9": "201", "Info10": "FID", "Info11": "BLUBLU", "Info12": "JS", "Info13": "1542154", "Info14": "C", "Info15": "C" } ] }, "Status": "OK" } }
Como posso fazer este JSON em Delphi?
Obrigado!
{ "InformacoesConta": { "Contas": { "Contas": [ { "Info1": "8595", "Info2": "2959", "Info3": 0, "Info4": 51, "Info5": "30/11/2015", "Info6": "XSPWXG KPIUODEHYZB 15112463481", "Info7": 211.57, "Info8": "GODOFREDO R", "Info9": "201", "Info10": "FID", "Info11": "BLUBLU", "Info12": "JS", "Info13": "1542154", "Info14": "C", "Info15": "C" } ] }, "Status": "OK" } }
Fernando Tremonti
Curtidas 0
Melhor post
Gutierry Pereira
01/03/2017
Boa tarde,
Dessa forma acho que pode ficar um pouco confuso para manutenção, outra coisa que seus JSON não parece estar muito bem estruturado, inclusive o primeiro que passou como exemplo.
Uma dica seria você organizar em classes e gerar um json a partir dela:
Para gerar o JSON basta fazer assim agora:
Declare a unit Rest.Json no uses.
Dessa forma seu resultado será semelhante a isso:
{
"cnpjCooperativa": "123456789",
"documentoCooperado": "lbalbalbalba",
"endereco": {
"logradouro": "Rua 12 bla",
"numero": "123",
"bairro": "Meu Bairro",
"cep": "99999999",
"cidade": "City 2000",
"estado": "UF"
},
"contas": [{
"info1": "1.00-01",
"info2": "1.00-02",
"info3": "1.00-03",
"info4": "1.00-04"
}, {
"info1": "2.00-01",
"info2": "2.00-02",
"info3": "2.00-03",
"info4": "2.00-04"
}]
}
Espero que tenha ajudado.
Abraços
Dessa forma acho que pode ficar um pouco confuso para manutenção, outra coisa que seus JSON não parece estar muito bem estruturado, inclusive o primeiro que passou como exemplo.
Uma dica seria você organizar em classes e gerar um json a partir dela:
TEnderecoDTO = class private FLogradouro : String; FNumero : String; FBairro : String; FCep : String; FCidade : String; FEstado : String; published property Logradouro : String read FLogradouro write FLogradouro; property Numero : String read FNumero write FNumero ; property Bairro : String read FBairro write FBairro ; property Cep : String read FCep write FCep ; property Cidade : String read FCidade write FCidade ; property Estado : String read FEstado write FEstado ; end; TInformacoesContasDTO = class private fInfo1 : String; fInfo2 : String; fInfo3 : String; fInfo4 : String; published property Info1 : String read fInfo1 write fInfo1 ; property Info2 : String read fInfo2 write fInfo2 ; property Info3 : String read fInfo3 write fInfo3 ; property Info4 : String read fInfo4 write fInfo4 ; end; TArrayInformacoesContasDTO = array of TInformacoesContasDTO; TCooperadoDTO = class private FCnpjCooperativa : String; FDocumentoCooperado : String; //... FEndereco : TEnderecoDTO; FContas : TArrayInformacoesContasDTO; published property CnpjCooperativa : String read FCnpjCooperativa write FCnpjCooperativa ; property DocumentoCooperado : String read FDocumentoCooperado write FDocumentoCooperado ; //... property Endereco : TEnderecoDTO read FEndereco write FEndereco ; property Contas : TArrayInformacoesContasDTO read FContas write FContas ; end;
Para gerar o JSON basta fazer assim agora:
var CooperadoDTO : TCooperadoDTO; Endereco : TEnderecoDTO; Informacoes : TArrayInformacoesContasDTO; Informacao : TInformacoesContasDTO; json : TStringList; begin json := TStringList.Create; CooperadoDTO := TCooperadoDTO.Create; Endereco := TEnderecoDTO.Create; try CooperadoDTO.CnpjCooperativa := '123456789'; CooperadoDTO.DocumentoCooperado := 'lbalbalbalba'; Endereco.Numero := '123'; Endereco.Logradouro := 'Rua 12 bla'; Endereco.Cep := '99999999' ; Endereco.Bairro := 'Meu Bairro'; Endereco.Cidade := 'City 2000' ; Endereco.Estado := 'UF' ; CooperadoDTO.Endereco := Endereco; SetLength(Informacoes,2); Informacao := TInformacoesContasDTO.Create; Informacao.fInfo1 := '1.00-01'; Informacao.fInfo2 := '1.00-02'; Informacao.fInfo3 := '1.00-03'; Informacao.fInfo4 := '1.00-04'; Informacoes[0] := Informacao; Informacao := TInformacoesContasDTO.Create; Informacao.fInfo1 := '2.00-01'; Informacao.fInfo2 := '2.00-02'; Informacao.fInfo3 := '2.00-03'; Informacao.fInfo4 := '2.00-04'; Informacoes[1] := Informacao; CooperadoDTO.Contas := Informacoes; json.Text := TJson.ObjectToJsonString(CooperadoDTO); json.SaveToFile('<caminho_onde_deseja_salvar>'); finally FreeAndNil(Endereco); FreeAndNil(CooperadoDTO); FreeAndNil(json); end; end;
Declare a unit Rest.Json no uses.
Dessa forma seu resultado será semelhante a isso:
{
"cnpjCooperativa": "123456789",
"documentoCooperado": "lbalbalbalba",
"endereco": {
"logradouro": "Rua 12 bla",
"numero": "123",
"bairro": "Meu Bairro",
"cep": "99999999",
"cidade": "City 2000",
"estado": "UF"
},
"contas": [{
"info1": "1.00-01",
"info2": "1.00-02",
"info3": "1.00-03",
"info4": "1.00-04"
}, {
"info1": "2.00-01",
"info2": "2.00-02",
"info3": "2.00-03",
"info4": "2.00-04"
}]
}
Espero que tenha ajudado.
Abraços
GOSTEI 9
Mais Respostas
Gutierry Pereira
24/02/2017
1 - Você pode criar um objeto representante, sendo ele um o objeto da classe de InformacoesContas onde tem um array ou coleção de contas e usar a classe TJSONObject para converter a string em um objeto.
2 - Pode simplpemente fazer um parser da string com uso da classe TJSONObject e acessar os valores desejados através do método getValue.
2 - Pode simplpemente fazer um parser da string com uso da classe TJSONObject e acessar os valores desejados através do método getValue.
GOSTEI 1
Fernando Tremonti
24/02/2017
Fiz algo neste sentido,
Mas a estrutura não ficou igual:
Mas a estrutura não ficou igual:
LJsonObject := TJSONObject.Create; LInfoContas := TJSONArray.Create; LContas := TJSONArray.Create; while not Eof do begin LJson := TJSONObject.Create; LJson.AddPair(TJSONPair.Create('CnpjCooperativa' , TJSONString.Create(FieldByName('CNPJCOOPERATIVA').Value ))); LJson.AddPair(TJSONPair.Create('DocumentoCooperado', TJSONString.Create(FieldByName('nrCpfCnpj').Value ))); LJson.AddPair(TJSONPair.Create('AgenciaCooperado' , TJSONNumber.Create(FieldByName('AgenciaCooperado').Value ))); LJson.AddPair(TJSONPair.Create('ContaCooperado' , TJSONNumber.Create(FieldByName('ContaCooperado').Value ))); LJson.AddPair(TJSONPair.Create('ContaDesde' , TJSONString.Create(DateToStr(FieldByName('ContaDesde').Value) ))); LJson.AddPair(TJSONPair.Create('NomeCooperado' , TJSONString.Create(FieldByName('NmPrimTl').Value ))); LJson.AddPair(TJSONPair.Create('SaldoDisponivel', TJSONNumber.Create(FieldByName('SaldoDisponivel').Value ))); LJson.AddPair(TJSONPair.Create('Logradouro' , TJSONString.Create(FieldByName('dsEndere').Value ))); LJson.AddPair(TJSONPair.Create('Numero' , TJSONString.Create(FieldByName('numero').Value ))); LJson.AddPair(TJSONPair.Create('Bairro' , TJSONString.Create(FieldByName('nmbairro').Value ))); LJson.AddPair(TJSONPair.Create('Cidade' , TJSONString.Create(FieldByName('nmCidade').Value ))); LJson.AddPair(TJSONPair.Create('Estado' , TJSONString.Create(FieldByName('cdUFEnd').Value ))); LJson.AddPair(TJSONPair.Create('Cep' , TJSONString.Create(FieldByName('nrCEPEnd').Value ))); LJson.AddPair(TJSONPair.Create('TipoProduto' , TJSONString.Create(FieldByName('TipoProduto').Value ))); LJson.AddPair(TJSONPair.Create('StatusCooperado', TJSONString.Create(FieldByName('StatusCooperado').Value ))); LContas.Add(LJson); Next; end; LJsonObject.AddPair(TJSONPair.Create('InformacoesContas', LContas )); result := LJsonObject; end;
GOSTEI 0
Ruy Caribé
24/02/2017
Boa tarde,
Dessa forma acho que pode ficar um pouco confuso para manutenção, outra coisa que seus JSON não parece estar muito bem estruturado, inclusive o primeiro que passou como exemplo.
Uma dica seria você organizar em classes e gerar um json a partir dela:
Para gerar o JSON basta fazer assim agora:
Declare a unit Rest.Json no uses.
Dessa forma seu resultado será semelhante a isso:
{
"cnpjCooperativa": "123456789",
"documentoCooperado": "lbalbalbalba",
"endereco": {
"logradouro": "Rua 12 bla",
"numero": "123",
"bairro": "Meu Bairro",
"cep": "99999999",
"cidade": "City 2000",
"estado": "UF"
},
"contas": [{
"info1": "1.00-01",
"info2": "1.00-02",
"info3": "1.00-03",
"info4": "1.00-04"
}, {
"info1": "2.00-01",
"info2": "2.00-02",
"info3": "2.00-03",
"info4": "2.00-04"
}]
}
Espero que tenha ajudado.
Abraços
Dessa forma acho que pode ficar um pouco confuso para manutenção, outra coisa que seus JSON não parece estar muito bem estruturado, inclusive o primeiro que passou como exemplo.
Uma dica seria você organizar em classes e gerar um json a partir dela:
TEnderecoDTO = class private FLogradouro : String; FNumero : String; FBairro : String; FCep : String; FCidade : String; FEstado : String; published property Logradouro : String read FLogradouro write FLogradouro; property Numero : String read FNumero write FNumero ; property Bairro : String read FBairro write FBairro ; property Cep : String read FCep write FCep ; property Cidade : String read FCidade write FCidade ; property Estado : String read FEstado write FEstado ; end; TInformacoesContasDTO = class private fInfo1 : String; fInfo2 : String; fInfo3 : String; fInfo4 : String; published property Info1 : String read fInfo1 write fInfo1 ; property Info2 : String read fInfo2 write fInfo2 ; property Info3 : String read fInfo3 write fInfo3 ; property Info4 : String read fInfo4 write fInfo4 ; end; TArrayInformacoesContasDTO = array of TInformacoesContasDTO; TCooperadoDTO = class private FCnpjCooperativa : String; FDocumentoCooperado : String; //... FEndereco : TEnderecoDTO; FContas : TArrayInformacoesContasDTO; published property CnpjCooperativa : String read FCnpjCooperativa write FCnpjCooperativa ; property DocumentoCooperado : String read FDocumentoCooperado write FDocumentoCooperado ; //... property Endereco : TEnderecoDTO read FEndereco write FEndereco ; property Contas : TArrayInformacoesContasDTO read FContas write FContas ; end;
Para gerar o JSON basta fazer assim agora:
var CooperadoDTO : TCooperadoDTO; Endereco : TEnderecoDTO; Informacoes : TArrayInformacoesContasDTO; Informacao : TInformacoesContasDTO; json : TStringList; begin json := TStringList.Create; CooperadoDTO := TCooperadoDTO.Create; Endereco := TEnderecoDTO.Create; try CooperadoDTO.CnpjCooperativa := ''123456789''; CooperadoDTO.DocumentoCooperado := ''lbalbalbalba''; Endereco.Numero := ''123''; Endereco.Logradouro := ''Rua 12 bla''; Endereco.Cep := ''99999999'' ; Endereco.Bairro := ''Meu Bairro''; Endereco.Cidade := ''City 2000'' ; Endereco.Estado := ''UF'' ; CooperadoDTO.Endereco := Endereco; SetLength(Informacoes,2); Informacao := TInformacoesContasDTO.Create; Informacao.fInfo1 := ''1.00-01''; Informacao.fInfo2 := ''1.00-02''; Informacao.fInfo3 := ''1.00-03''; Informacao.fInfo4 := ''1.00-04''; Informacoes[0] := Informacao; Informacao := TInformacoesContasDTO.Create; Informacao.fInfo1 := ''2.00-01''; Informacao.fInfo2 := ''2.00-02''; Informacao.fInfo3 := ''2.00-03''; Informacao.fInfo4 := ''2.00-04''; Informacoes[1] := Informacao; CooperadoDTO.Contas := Informacoes; json.Text := TJson.ObjectToJsonString(CooperadoDTO); json.SaveToFile(''<caminho_onde_deseja_salvar>''); finally FreeAndNil(Endereco); FreeAndNil(CooperadoDTO); FreeAndNil(json); end; end;
Declare a unit Rest.Json no uses.
Dessa forma seu resultado será semelhante a isso:
{
"cnpjCooperativa": "123456789",
"documentoCooperado": "lbalbalbalba",
"endereco": {
"logradouro": "Rua 12 bla",
"numero": "123",
"bairro": "Meu Bairro",
"cep": "99999999",
"cidade": "City 2000",
"estado": "UF"
},
"contas": [{
"info1": "1.00-01",
"info2": "1.00-02",
"info3": "1.00-03",
"info4": "1.00-04"
}, {
"info1": "2.00-01",
"info2": "2.00-02",
"info3": "2.00-03",
"info4": "2.00-04"
}]
}
Espero que tenha ajudado.
Abraços
Boa tarde, como faço pra entrar em contato com você? meu skype ruicaribe @ gmail .com
GOSTEI 0
Ruy Caribé
24/02/2017
Boa tarde, como faço pra entrar em contato com você? meu skype ruicaribe @ gmail .com
GOSTEI 0
Fábio Valente
24/02/2017
Cara, segui o seu exemplo e funcionou perfeitamente para o que precisava! Muito obrigado pela colaboração com a comunidade!
GOSTEI 1
Daniel Pavan
24/02/2017
Boa Noite Gutierry Pereira!
Sei que o Post é antigo, mas me interessei muito pela transparência pela qual são geradas as informações para o json com a utilização de classes.
Porém, veja se consegue me ajudar.
Estou usando RAD Studio XE 8.0 e não consigo declarar a uses REST.Json.
Para testar seu exemplo Criei uma nova aplicação "VCL Forms Application - Delphi".
Desde já agradeço se puder me orientar.
Grande Agraço!
Daniel
Sei que o Post é antigo, mas me interessei muito pela transparência pela qual são geradas as informações para o json com a utilização de classes.
Porém, veja se consegue me ajudar.
Estou usando RAD Studio XE 8.0 e não consigo declarar a uses REST.Json.
Para testar seu exemplo Criei uma nova aplicação "VCL Forms Application - Delphi".
Desde já agradeço se puder me orientar.
Grande Agraço!
Daniel
Boa tarde,
Dessa forma acho que pode ficar um pouco confuso para manutenção, outra coisa que seus JSON não parece estar muito bem estruturado, inclusive o primeiro que passou como exemplo.
Uma dica seria você organizar em classes e gerar um json a partir dela:
Para gerar o JSON basta fazer assim agora:
Declare a unit Rest.Json no uses.
Dessa forma seu resultado será semelhante a isso:
{
"cnpjCooperativa": "123456789",
"documentoCooperado": "lbalbalbalba",
"endereco": {
"logradouro": "Rua 12 bla",
"numero": "123",
"bairro": "Meu Bairro",
"cep": "99999999",
"cidade": "City 2000",
"estado": "UF"
},
"contas": [{
"info1": "1.00-01",
"info2": "1.00-02",
"info3": "1.00-03",
"info4": "1.00-04"
}, {
"info1": "2.00-01",
"info2": "2.00-02",
"info3": "2.00-03",
"info4": "2.00-04"
}]
}
Espero que tenha ajudado.
Abraços
Dessa forma acho que pode ficar um pouco confuso para manutenção, outra coisa que seus JSON não parece estar muito bem estruturado, inclusive o primeiro que passou como exemplo.
Uma dica seria você organizar em classes e gerar um json a partir dela:
TEnderecoDTO = class private FLogradouro : String; FNumero : String; FBairro : String; FCep : String; FCidade : String; FEstado : String; published property Logradouro : String read FLogradouro write FLogradouro; property Numero : String read FNumero write FNumero ; property Bairro : String read FBairro write FBairro ; property Cep : String read FCep write FCep ; property Cidade : String read FCidade write FCidade ; property Estado : String read FEstado write FEstado ; end; TInformacoesContasDTO = class private fInfo1 : String; fInfo2 : String; fInfo3 : String; fInfo4 : String; published property Info1 : String read fInfo1 write fInfo1 ; property Info2 : String read fInfo2 write fInfo2 ; property Info3 : String read fInfo3 write fInfo3 ; property Info4 : String read fInfo4 write fInfo4 ; end; TArrayInformacoesContasDTO = array of TInformacoesContasDTO; TCooperadoDTO = class private FCnpjCooperativa : String; FDocumentoCooperado : String; //... FEndereco : TEnderecoDTO; FContas : TArrayInformacoesContasDTO; published property CnpjCooperativa : String read FCnpjCooperativa write FCnpjCooperativa ; property DocumentoCooperado : String read FDocumentoCooperado write FDocumentoCooperado ; //... property Endereco : TEnderecoDTO read FEndereco write FEndereco ; property Contas : TArrayInformacoesContasDTO read FContas write FContas ; end;
Para gerar o JSON basta fazer assim agora:
var CooperadoDTO : TCooperadoDTO; Endereco : TEnderecoDTO; Informacoes : TArrayInformacoesContasDTO; Informacao : TInformacoesContasDTO; json : TStringList; begin json := TStringList.Create; CooperadoDTO := TCooperadoDTO.Create; Endereco := TEnderecoDTO.Create; try CooperadoDTO.CnpjCooperativa := ''123456789''; CooperadoDTO.DocumentoCooperado := ''lbalbalbalba''; Endereco.Numero := ''123''; Endereco.Logradouro := ''Rua 12 bla''; Endereco.Cep := ''99999999'' ; Endereco.Bairro := ''Meu Bairro''; Endereco.Cidade := ''City 2000'' ; Endereco.Estado := ''UF'' ; CooperadoDTO.Endereco := Endereco; SetLength(Informacoes,2); Informacao := TInformacoesContasDTO.Create; Informacao.fInfo1 := ''1.00-01''; Informacao.fInfo2 := ''1.00-02''; Informacao.fInfo3 := ''1.00-03''; Informacao.fInfo4 := ''1.00-04''; Informacoes[0] := Informacao; Informacao := TInformacoesContasDTO.Create; Informacao.fInfo1 := ''2.00-01''; Informacao.fInfo2 := ''2.00-02''; Informacao.fInfo3 := ''2.00-03''; Informacao.fInfo4 := ''2.00-04''; Informacoes[1] := Informacao; CooperadoDTO.Contas := Informacoes; json.Text := TJson.ObjectToJsonString(CooperadoDTO); json.SaveToFile(''<caminho_onde_deseja_salvar>''); finally FreeAndNil(Endereco); FreeAndNil(CooperadoDTO); FreeAndNil(json); end; end;
Declare a unit Rest.Json no uses.
Dessa forma seu resultado será semelhante a isso:
{
"cnpjCooperativa": "123456789",
"documentoCooperado": "lbalbalbalba",
"endereco": {
"logradouro": "Rua 12 bla",
"numero": "123",
"bairro": "Meu Bairro",
"cep": "99999999",
"cidade": "City 2000",
"estado": "UF"
},
"contas": [{
"info1": "1.00-01",
"info2": "1.00-02",
"info3": "1.00-03",
"info4": "1.00-04"
}, {
"info1": "2.00-01",
"info2": "2.00-02",
"info3": "2.00-03",
"info4": "2.00-04"
}]
}
Espero que tenha ajudado.
Abraços
GOSTEI 0
Jose Silva
24/02/2017
Boa tarde,
Dessa forma acho que pode ficar um pouco confuso para manutenção, outra coisa que seus JSON não parece estar muito bem estruturado, inclusive o primeiro que passou como exemplo.
Uma dica seria você organizar em classes e gerar um json a partir dela:
Para gerar o JSON basta fazer assim agora:
Declare a unit Rest.Json no uses.
Dessa forma seu resultado será semelhante a isso:
{
"cnpjCooperativa": "123456789",
"documentoCooperado": "lbalbalbalba",
"endereco": {
"logradouro": "Rua 12 bla",
"numero": "123",
"bairro": "Meu Bairro",
"cep": "99999999",
"cidade": "City 2000",
"estado": "UF"
},
"contas": [{
"info1": "1.00-01",
"info2": "1.00-02",
"info3": "1.00-03",
"info4": "1.00-04"
}, {
"info1": "2.00-01",
"info2": "2.00-02",
"info3": "2.00-03",
"info4": "2.00-04"
}]
}
Espero que tenha ajudado.
Abraços
Dessa forma acho que pode ficar um pouco confuso para manutenção, outra coisa que seus JSON não parece estar muito bem estruturado, inclusive o primeiro que passou como exemplo.
Uma dica seria você organizar em classes e gerar um json a partir dela:
TEnderecoDTO = class private FLogradouro : String; FNumero : String; FBairro : String; FCep : String; FCidade : String; FEstado : String; published property Logradouro : String read FLogradouro write FLogradouro; property Numero : String read FNumero write FNumero ; property Bairro : String read FBairro write FBairro ; property Cep : String read FCep write FCep ; property Cidade : String read FCidade write FCidade ; property Estado : String read FEstado write FEstado ; end; TInformacoesContasDTO = class private fInfo1 : String; fInfo2 : String; fInfo3 : String; fInfo4 : String; published property Info1 : String read fInfo1 write fInfo1 ; property Info2 : String read fInfo2 write fInfo2 ; property Info3 : String read fInfo3 write fInfo3 ; property Info4 : String read fInfo4 write fInfo4 ; end; TArrayInformacoesContasDTO = array of TInformacoesContasDTO; TCooperadoDTO = class private FCnpjCooperativa : String; FDocumentoCooperado : String; //... FEndereco : TEnderecoDTO; FContas : TArrayInformacoesContasDTO; published property CnpjCooperativa : String read FCnpjCooperativa write FCnpjCooperativa ; property DocumentoCooperado : String read FDocumentoCooperado write FDocumentoCooperado ; //... property Endereco : TEnderecoDTO read FEndereco write FEndereco ; property Contas : TArrayInformacoesContasDTO read FContas write FContas ; end;
Para gerar o JSON basta fazer assim agora:
var CooperadoDTO : TCooperadoDTO; Endereco : TEnderecoDTO; Informacoes : TArrayInformacoesContasDTO; Informacao : TInformacoesContasDTO; json : TStringList; begin json := TStringList.Create; CooperadoDTO := TCooperadoDTO.Create; Endereco := TEnderecoDTO.Create; try CooperadoDTO.CnpjCooperativa := '123456789'; CooperadoDTO.DocumentoCooperado := 'lbalbalbalba'; Endereco.Numero := '123'; Endereco.Logradouro := 'Rua 12 bla'; Endereco.Cep := '99999999' ; Endereco.Bairro := 'Meu Bairro'; Endereco.Cidade := 'City 2000' ; Endereco.Estado := 'UF' ; CooperadoDTO.Endereco := Endereco; SetLength(Informacoes,2); Informacao := TInformacoesContasDTO.Create; Informacao.fInfo1 := '1.00-01'; Informacao.fInfo2 := '1.00-02'; Informacao.fInfo3 := '1.00-03'; Informacao.fInfo4 := '1.00-04'; Informacoes[0] := Informacao; Informacao := TInformacoesContasDTO.Create; Informacao.fInfo1 := '2.00-01'; Informacao.fInfo2 := '2.00-02'; Informacao.fInfo3 := '2.00-03'; Informacao.fInfo4 := '2.00-04'; Informacoes[1] := Informacao; CooperadoDTO.Contas := Informacoes; json.Text := TJson.ObjectToJsonString(CooperadoDTO); json.SaveToFile('<caminho_onde_deseja_salvar>'); finally FreeAndNil(Endereco); FreeAndNil(CooperadoDTO); FreeAndNil(json); end; end;
Declare a unit Rest.Json no uses.
Dessa forma seu resultado será semelhante a isso:
{
"cnpjCooperativa": "123456789",
"documentoCooperado": "lbalbalbalba",
"endereco": {
"logradouro": "Rua 12 bla",
"numero": "123",
"bairro": "Meu Bairro",
"cep": "99999999",
"cidade": "City 2000",
"estado": "UF"
},
"contas": [{
"info1": "1.00-01",
"info2": "1.00-02",
"info3": "1.00-03",
"info4": "1.00-04"
}, {
"info1": "2.00-01",
"info2": "2.00-02",
"info3": "2.00-03",
"info4": "2.00-04"
}]
}
Espero que tenha ajudado.
Abraços
Achei muito bom isso. Ainda não manipulei arquivos JSON com Delphi, mas é bacana saber que pode ser feito desta forma, o reaproveitamento da classe é muito vantajoso.
GOSTEI 0