Geração de chaves JSON (DataSnap Delphi);
09/11/2018
0
Bom dia Pessoal, estou estudando e tentando desenvolver uma aplicação datasnap onde eu possa disponibilizar os meus dados para outro software web através do json.
Estou com algumas dúvidas quanto a geração de chaves no Delphi para JSON.
Meu select gera está tabela:
+-----------+---------+
| nome | salario |
+-----------+---------+
| Pedro | 5000 |
| Marcos | 2000 |
| Ana | 8000 |
| Jaqueline | 3000 |
+-----------+---------+
Meu JSON está saindo assim:
{"result":[{"nome":"Pedro","salario":"2000","nome":"Ana","salario":"3000"}]}.
Como podem perceber, ele não está pegando o salario correto do Pedro, alem de mostrar menos registros do que a minha tabela possui e ao terminar o "nome" : "salario". Como eu faço para gerar outro par de chaves? {}
Segue Código
Desde já Agradeço!
Estou com algumas dúvidas quanto a geração de chaves no Delphi para JSON.
Meu select gera está tabela:
+-----------+---------+
| nome | salario |
+-----------+---------+
| Pedro | 5000 |
| Marcos | 2000 |
| Ana | 8000 |
| Jaqueline | 3000 |
+-----------+---------+
Meu JSON está saindo assim:
{"result":[{"nome":"Pedro","salario":"2000","nome":"Ana","salario":"3000"}]}.
Como podem perceber, ele não está pegando o salario correto do Pedro, alem de mostrar menos registros do que a minha tabela possui e ao terminar o "nome" : "salario". Como eu faço para gerar outro par de chaves? {}
Segue Código
function TServerMethods1.GetSalarios: TJsonObject; Var FDQuery : TFDQuery; LJSONObject : TJsonObject; I: Integer; NomeColuna, ValorColuna : String; begin FDQuery := TFDQuery.Create(nil); try FDQuery.Connection := cnnConexao; FDQuery.SQL.Add(''select nome, salario from funcionarios''); FDQuery.Active := True; FDQuery.First; LJSONObject := TJsonObject.Create; while (not FDQuery.Eof) do begin for I := 0 to FDQuery.FieldDefs.Count -1 do begin NomeColuna := FDQuery.FieldDefs[I].Name; ValorColuna := FDQuery.FieldByName(NomeColuna).AsString; LJSONObject.AddPair(TJSONPair.Create(TJSONString.Create(NomeColuna),TJSONString.Create(ValorColuna))); FDQuery.Next; end; end; finally FDQuery.Free; Showmessage(LJSONObject.ToString); end; Result := LJSonObject; end;
Desde já Agradeço!
Déverson Rando
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)