- Код: Выделить всё
- ....
 function THTTPSender.StringToJSON(src: String): TJSONObject;
 var JsonParser: TJSONParser;
 jo: TJSONObject;
 begin
 result:=nil;
 if src<>'' then
 Begin
 try
 try
 JsonParser:=TJSONParser.Create(src);
 jo:=JsonParser.Parse as TJSONObject;
 result:=jo;
 Addlog('result StringToJSON: '+jo.AsJSON);
 except
 on E:Exception do Addlog('!!! Exception [StringToJSON]: '+E.Message);
 end;
 finally
 JsonParser.free;
 end;
 end;
 end;
 function THTTPSender.JSONToString(src: TJSONObject): String;
 begin
 try
 result:='';
 if src<>nil Then
 begin
 src.FormatJSON(AsCompressedJSON,2);
 result:=src.AsJSON;
 end;
 Addlog('result JsonToString: '+result);
 except
 on E:Exception do
 Begin
 Addlog('!!! Exception [JSONToString]: '+E.Message);
 result:='';
 end;
 end;
 end;
 function THTTPSender.Send(Data: TJSONObject): boolean;
 begin
 AddLog('send json');
 ClearSendData;
 if Data<>nil then
 Begin
 fJSONData:=StringToJSON(JSONToString(Data));
 AddLog('send data: '+fJSONData.AsJSON);
 end
 else AddLog('send data: nil');
 result:=Post; // передача данных методом post
 end;
 ....
Всё работает, но периодически. клинит, и при каждом вызове метода send( ) получаю "странное" преобразование от слова совсем странное.
По логам смотрю и из вполне нормального переданного в Data объекта json
{ "type" : "request_data", "sn" : 1646021 }
получаю вот это
result JsonToString: type"request_data"sn1646021
т.е. хоть стреляй, но если хоть раз его так переклинило, то все остальные вызовы метода send преобразуют json в такое вот безобразие, хоть какой json передай



