Tu dir aber selbst einen gefallen und nutze die JSON Frameworks die es schon gibt. Es ist natürlich gut zu verstehen was läuft und wie etwas aufgebaut ist, aber im fertigen Code würde ich immer auf das gehen, was man danach besser versteht bzw. weitere Verbreitung hat. Dein Code würde mit der
system.JSON unit umgesetzt so aussehen.
Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
var
myJSONObj: TJSONObject;
myDataObj: TJSONObject;
begin
myJSONObj := TJSONObject.Create;
try
myJSONObj.AddPair('
message', '
test message');
myJSONObj.AddPair('
type', '
ALARM');
myJSONObj.AddPair('
sender', '
192.168.0.217');
myJSONObj.AddPair('
timestamp', '
1424950740000');
myJSONObj.AddPair('
sender', '
192.168.0.217');
myDataObj := TJSONObject.Create;
myDataObj.AddPair('
address', Edit1.text);
myJSONObj.AddPair('
data', myDataObj);
try
IdHTTP1.Request.Accept := '
application/json';
IdHTTP1.Request.ContentType := '
application/json';
Memo1.Lines.text := IdHTTP1.Post('
http://192.168.0.5/rest/external/http', myJSONObj.ToJSON);
except
on e:
Exception do
ShowMessage('
Huch, was ist denn da passiert? - ' + e.
Message);
end
finally
myJSONObj.free;
end;
end;