danilozix 0 Denunciar post Postado Junho 19, 2015 Boa tarde pessoal, preciso de um método que converta um arquivo json para uma lista de objetos. Estou tentando utilizar o método UnMarshal da unit REST.JsonReflect, porém ele não esta conseguindo reconhecer o arquivo json. Eu estou pegando esse json de um web service java, eu creio que o erro ocorre porque o delphi não consegue reconhecer o arquivo json sem algumas anotações que geralmente um arquivo json gerado pelo delphi contem. Obs: Delphi XE6. Compartilhar este post Link para o post Compartilhar em outros sites
danilozix 0 Denunciar post Postado Junho 26, 2015 Consegui resolver o problema, fiz um método genérico que pode receber qualquer tipo de lista. function THelper.JsonListObjeto(jsonString: String; classe: TClass): TList<TObject>; var lista:Tlist<TObject>; jo: TJSONObject; obj: TObject; jl: TJSONArray; i:integer; unMarshal: TJSONUnMarshal; begin lista := TList<TObject>.Create; jo := TJSONObject.Create; obj := TObject.Create; jl := TJSONArray.Create; unMarshal := TJSONUnMarshal.Create; jl := TJSONObject.ParseJSONValue(jsonString) as TJsonArray; if Assigned(jl) then begin for i := 0 to jl.Count -1 do begin jo := jl.Items[i] as TJSONObject; obj := unMarshal.CreateObject(classe,jo); lista.Add(obj); end; end; result := lista; end; Depois basta chamar a função: procedure TformPrincipal.Button10Click(Sender: TObject); var helper: THelper; jsonString: string; lista:Tlist<TCliente>; begin helper := THelper.Create; lista := TList<TCliente>.Create; jsonString := memo1.Text;// RECEBE UM JSON lista := TList<TCliente>(helper.JsonListObjeto(jsonString,TCliente)) ; end; Compartilhar este post Link para o post Compartilhar em outros sites