文字列パラメータ「CompanyName」を受け入れるサーバーメソッド「CustomerLookup」があります。ユーザーは任意の文字を入力でき、CustomerLookupメソッドは条件に部分的に一致する顧客のリストを返します。私のRESTURLは次のようなもので、最後の単語「t」はメソッドのパラメーターです。
http://localhost/datasnap/rest/TSales_SM/CustomerLookup/t
私の期待する結果は、ユーザーが「t」を入力した場合、メソッドは「t」に部分的に一致するすべての顧客の会社名を返すことです。しかし、T&YがTrueに変換され、N&Fがfalseに変換されるなどの特定の文字を見つけました。変換コードは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;
システムがT、F、Y、Nをtrueとfalseに変換するのを防ぐ方法を誰かに教えてもらえますか
ありがとう。