Moin...
ich hätte noch eine Variante für komplexe Objekte mit Listen <Txxx>:
Delphi-Quellcode:
class function TToolsJson.JsonFromObject(aValue: TObject): string;
var
MarshalObj: TJSONMarshal;
JSONObject: TJSONObject;
begin
Result := '';
MarshalObj := TJSONMarshal.Create;
try
JSONObject := MarshalObj.Marshal(aValue) as TJSONObject;
try
if Assigned(JSONObject) then
Result := JSONObject.ToString;
finally
JSONObject.Free;
end;
finally
MarshalObj.Free;
end;
end;
class function TToolsJson.ObjectFromJson(aJson: string): TObject;
var
UnMarshalObj: TJSONUnMarshal;
JSONObject: TJSONObject;
begin
Result := nil;
UnMarshalObj := TJSONUnMarshal.Create;
try
// Todo: Json String welcher mit JsomFromObject erstellt wurde, wird nicht in JsonObject zurückgewandelt
JSONObject := TJSONObject.ParseJSONValue(aJson) as TJSONObject;
try
if Assigned(JSONObject) then
Result := UnMarshalObj.Unmarshal(JSONObject);
finally
JSONObject.Free;
end;
finally
UnMarshalObj.Free;
end;
end;