J'ai une méthode serveur "CustomerLookup" qui accepte un paramètre de type chaîne de caractères "CompanyName". L'utilisateur peut saisir n'importe quel caractère et la méthode CustomerLookup renvoie une liste de clients qui correspondent partiellement aux critères. Mon URL REST ressemble à ce qui suit, le dernier mot "t" étant le paramètre de la méthode.
http://localhost/datasnap/rest/TSales_SM/CustomerLookup/t
Le résultat attendu est que si l'utilisateur saisit "t", la méthode renverra le nom de la société de tous les clients qui correspondent partiellement à "t". Mais j'ai découvert que pour certains caractères comme T et Y seront convertis en Vrai, N et F seront convertis en faux. Le code de conversion est implémenté dans l'unité delphi -> DataSnap.DSService.
procedure TDSRESTService.BuildParamArray(const Params: TStringList; var ParamArray: TJSONArray);
var
I: Integer;
S: String;
LValue: Double;
begin
ParamArray := TJSONArray.Create;
for I := 0 to Params.Count - 1 do
begin
S := Params[I];
if (AnsiIndexText(S,TrueBoolStrs) > -1) then
ParamArray.AddElement(TJSONTrue.Create)
else if AnsiIndexText(S,FalseBoolStrs) > -1 then
ParamArray.AddElement(TJSONFalse.Create)
else if AnsiCompareStr(S,NULL) = 0 then
ParamArray.AddElement(TJSONNull.Create)
else
if TDBXPlatform.TryJsonToFloat(S, LValue) then
ParamArray.AddElement(TJSONNumber.Create(S))
else
ParamArray.AddElement(TJSONString.Create(S));
end;
end;
Quelqu'un peut-il me dire comment empêcher le système de convertir T, F, Y, N en vrai et faux ?
Gracias.