Jump to content
Fórum Script Brasil
  • 0

(Resolvido) Alimentar Classe com TArray Delphi XE


arceadriano
 Share

Question

Bom dia

Estou consumindo um servido de webservice que utiliza JSON.

Criei as seguintes classes.

  { Classes Contador }
  TContador = class
  private
    FNome: String;
    FCNPJ: String;
  published
    property nome: String read FNome write FNome;
    property CNPJ: String read FCNPJ write FCNPJ;
  end;

  TRetContadores = class(TRetornoWS)
  private
    FOK: Boolean;
    FMsg: String;
    FContadores: TArray<TContador>;
  published
    property OK: Boolean read FOK write FOK;
    property msg: String read FMsg write FMsg;
    property Contadores: TArray<TContador> read FContadores write FContadores;
  end;

Para receber o conteudo JSON do webservice uso da seguinte forma, e o array é alimentado corretamente:

oRetornoWS := TJson.JsonToObject<TRetContadores>(cRetorno);

for i:= low(oRetornoWS.Contadores) to high(oRetornoWS.Contadores) do
  mtbContadores.InsertRecord([oRetornoWS.Contadores[i].CNPJ, oRetornoWS.Contadores[i].nome]);

Meu problema é o seguinte, como faço para adicionar os itens ao array da classe, para que depois eu utilize o método TJson.ObjectToJson() e criar o JSON.

 

 

Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0
  • 0

Jhonas... obrigado pela atenção

Criar o arquivo JSON ok, isso eu faço com o metodo  TJson.ObjectToJson() 

A questão é que não estou conseguindo alimentar a classe que criei.

  TRetContadores = class(TRetornoWS)
  private
    FOK: Boolean;
    FMsg: String;
    FContadores: TArray<TContador>;
  published
    property OK: Boolean read FOK write FOK;
    property msg: String read FMsg write FMsg;
    property Contadores: TArray<TContador> read FContadores write FContadores;
  end;

A Classe acima possui um array (FContadores), como faço para incluir registros nela?

Após usar o  TJson.ObjectToJson()  o JSON resultante ficaria dessa forma, mas para tal preciso carregar o array:

{
	"OK": true,
	"msg": "Registros encontrados",
	"contadores": [{
		"firstName": "John",
		"lastName": "Doe"
	}, {
		"firstName": "Anna",
		"lastName": "Smith"
	}, {
		"firstName": "Peter",
		"lastName": "Jones"
	}]
}

 

Link to comment
Share on other sites

  • 0

o primeiro link que te passei é exatamente isso ... só que o resultado é colocado dentro de um memo

a logica que voce vai seguir é a mesma ... voce só vai precisar fazer as alterações necessarias para o seu uso

abraço

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      149.6k
    • Total Posts
      646.1k
×
×
  • Create New...