Geração de chaves JSON (DataSnap Delphi);
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
Curtidas 0