HashLoad / horse

Fast, opinionated, minimalist web framework for Delphi
MIT License
1.17k stars 217 forks source link

Erro #294

Closed alissonrodrigo closed 2 years ago

alissonrodrigo commented 2 years ago

Tenho uma consulta simples no banco de dados para me retornar uma contagem, porem o json retornado não e valifo jsoninvalido

//DataModule function TdmDashBoard.DashBoard_SSPendentes(const aListaClientes: string): TFDQuery; var sSQL: TStringbuilder; begin

sSQL := TStringbuilder.Create; Result := TFDQuery.Create(nil); try sSQL.Clear; sSQL.Append('SELECT ').AppendLine; sSQL.Append(' COUNT(*) as ss_pendente ').AppendLine; sSQL.Append('FROM ss ').AppendLine; sSQL.Append(' WHERE ').AppendLine; sSQL.Append(' (ss.status = :Status) ').AppendLine; sSQL.Append(' AND (ss.cliente IN (' + aListaClientes + ')) ').AppendLine; Result.Active := False; Result.Connection := dmConexao.conDados; Result.SQL.Clear; Result.SQL.Add(sSQL.ToString); Result.ParamByName('Status').AsString := 'Pendente'; Result.Open();

finally sSQL.DisposeOf; end;

end;

//Controler procedure postDashBoard_SSPendentes(Req: THorseRequest; Res: THorseResponse; Next: TProc); var SS: TdmDashBoard; Qry: TFDQuery; jPacote: TJSONObject; jValores: TJSONValue; sListaClientes: string; begin

SS := TdmDashBoard.Create(nil); jPacote := TJSONObject.Create; jValores := jPacote.ParseJSONValue(Req.Body); try jValores.TryGetValue('cliente', sListaClientes); Qry := SS.DashBoard_SSPendentes(sListaClientes); Res.Send(Qry.ToJSONArray()); finally Qry.DisposeOf; SS.DisposeOf; jValores.DisposeOf; jPacote.DisposeOf; end; end;

viniciussanchez commented 2 years ago

Quem disse que o JSON não é válido? É valido sim... é um array de strings... Agora o "problema" que você apresentou, refere-se ao DataSet.Serialize, não é do Horse. E também não é um problema... O DataSet.Serialize, quando o dataset tem um único campo, ele exporta da forma que viu por padrão. Caso queria que aparece o nome do campo, tem que alterar um parâmetro na hora de dar o .ToJSONArray( aqui )

alissonrodrigo commented 2 years ago

Ha sim. Obrigado, vou olhar a documentação