ORMBr Fórum - Seja bem vindo
TORMBrJson.JsonToObjectList - No Android não funciona - Versão de Impressão

+- ORMBr Fórum - Seja bem vindo (https://www.ormbr.com.br/forum)
+-- Fórum: Fórum ORMBr - Aberto (https://www.ormbr.com.br/forum/forumdisplay.php?fid=1)
+--- Fórum: Código Fonte (https://www.ormbr.com.br/forum/forumdisplay.php?fid=4)
+--- Tópico: TORMBrJson.JsonToObjectList - No Android não funciona (/showthread.php?tid=98)



TORMBrJson.JsonToObjectList - No Android não funciona - Marcos - 27-06-2019

Olá, esse código funciona perfeitamente num aplicativo Win32, entretanto, quando complicado para Android da erro: Segmentation fault (11)  que significa Access Violation. Não consegui descobrir o motivo, mas creio estar relacionado a função GetNextJSON da unit ormbr.json.

procedure TForm1.Button1Click(Sender: TObject);
var
  ListaGrupo : TObjectList<Tgrupo>;
  Str        : string;
begin
  Str := '[' +
         ' {' +
         '    "id_grupo": 1,' +
         '    "descricao": "GRUPO 1"' +
         ' },' +
         ' {' +
         '    "id_grupo": 2,' +
         '    "descricao": "GRUPO 2"' +
         ' }' +
         ']';

  ListaGrupo := TObjectList<Tgrupo>.Create;
  ListaGrupo := TORMBrJson.JsonToObjectList<Tgrupo>(Str);

  if ListaGrupo.Count = 2 then
   ShowMessage('Tem 2 registros na lista - Funcionou OK');
end;

Obs: Estou usando Delphi 10.3.1


RE: TORMBrJson.JsonToObjectList - No Android não funciona - Isaque Pinheiro - 13-07-2019

(27-06-2019, 07:40 PM)Marcos Escreveu: Olá, esse código funciona perfeitamente num aplicativo Win32, entretanto, quando complicado para Android da erro: Segmentation fault (11)  que significa Access Violation. Não consegui descobrir o motivo, mas creio estar relacionado a função GetNextJSON da unit ormbr.json.

procedure TForm1.Button1Click(Sender: TObject);
var
  ListaGrupo : TObjectList<Tgrupo>;
  Str        : string;
begin
  Str := '[' +
         ' {' +
         '    "id_grupo": 1,' +
         '    "descricao": "GRUPO 1"' +
         ' },' +
         ' {' +
         '    "id_grupo": 2,' +
         '    "descricao": "GRUPO 2"' +
         ' }' +
         ']';

  ListaGrupo := TObjectList<Tgrupo>.Create;
  ListaGrupo := TORMBrJson.JsonToObjectList<Tgrupo>(Str);

  if ListaGrupo.Count = 2 then
   ShowMessage('Tem 2 registros na lista - Funcionou OK');
end;

Obs: Estou usando Delphi 10.3.1

Correção aplicada e disponível no repositório.