In JSON response, backward slashes are included in string if we have forward slash character.
I am using the below code to get the API response.
procedure GetJSONInformation;
var
objResponse : TRESTResponse;
objClient : TRESTClient;
objRequest : TRESTRequest;
sJSONResponse : string;
begin
objResponse := TRESTResponse.Create(nil);
objClient := TRESTClient.Create(nil);
objClient.Accept := 'application/json, text/plain; q=0.9, text/html;q=0.8,';
objClient.AcceptCharset := 'UTF-8, *;q=0.8';
objRequest := TRESTRequest.Create(nil);
objRequest.Method := rmGET;
objRequest.Accept := 'application/json, text/plain; q=0.9, text/html;q=0.8,';
objRequest.AcceptCharset := 'UTF-8, *;q=0.8';
objRequest.Client := objClient;
objRequest.Response:= objResponse;
try
objClient.BaseURL := 'https://sample.net';
ObjRequest.Resource := 'api/GetInformation/{Param1}/{Param2}';
ObjRequest.AddParameter('Param1', 'Parameter1', TRESTRequestParameterKind.pkURLSEGMENT);
ObjRequest.AddParameter('Param2', 'Parameter2', TRESTRequestParameterKind.pkURLSEGMENT);
ObjRequest.Execute;
if ObjResponse.StatusCode = 200 then
sJSONResponse:= ObjResponse.JsonText; //Here i got the JSON response
finally
FreeAndNil(objRequest);
FreeAndNil(objClient);
FreeAndNil(objResponse);
end;
end;
In API Response, backward slashes are included in string if I had forward slash in it. For Example,
JSON Response: "Date": "04\/13\/2022",
"stringdata": "DEC\/ACB test",
Expected Response: "Date": "04/13/2022",
"stringdata": "DEC/ACB test",
This is happening only in Alexandria version of Delphi whereas it was working fine in Delphi Berlin.
All I want to remove the backward slash in string. Please help me
You don't have to remove anything. Just parse valid json response and you will obtain the correct field value without escaped json string, just like @Dave Nottage and @Adriaan mentioned in comments.
See below two alternatives to parse with System.json and mORMot. It was tested with Delphi 10.x and Delphi 11 versions.
program Test_SystemJson_and_mORMot;
{$APPTYPE CONSOLE}
uses
System.SysUtils,
System.JSON,
Syncommons;
const
ValidJSON='{"Date": "04\/13\/2022","stringdata": "DEC\/ACB test"}';
var
// with System.JSON
JsonValue : TJSonValue;
// with mORMot
Json : variant;
begin
// with System.JSON
JsonValue := TJSonObject.ParseJSONValue(ValidJSON);
writeln(JsonValue.GetValue<string>('Date')); // Result 04/13/2022
writeln(JsonValue.GetValue<string>('stringdata')); // Result DEC/ACB test
// with mORMot
Json := _Json(ValidJSON);
writeln(Json.Date); // Result 04/13/2022
writeln(Json.stringdata); // Result DEC/ACB test
readln;
end.