Hallo,
ich komm nicht weiter mit einer KlassenProzedur, welche mittels
Superobject
Daten von einem WS zieht. Ich würde die IndexfromString-Lösung gerne dynamisch gestalten, um nur noch die Klassenfelder bei Bedarf zu ergänzen.
Meine verzweifelten Bemühungen als Kommentar
Class:
Delphi-Quellcode:
TProjectComponents = class
public
component1 : Boolean;
component1 : Boolean;
component1 : Boolean;
component1 : Boolean;
component1 : Boolean;
function writeToJson():String;
procedure readFromJson(aJsonString: String);
end;
Prozedur:
Delphi-Quellcode:
procedure TProjectComponents.readFromJson(aJsonString: String);
var
json: ISuperObject;
iterate: TSuperAvlIterator;
components: ISuperObject;
begin
try
json := SO(aJsonString);
iterate := json.AsObject.GetEnumerator;
iterate.First;
while iterate.MoveNext do
begin
// ClassField(iterate.Current.Name) := iterate.Current.Value.b['active'];
// Format('s%',[iterate.Current.Name]) := iterate.Current.Value.b['active'];
//components := json;
//components.N[Format('s%',[iterate.Current.Name])] := iterate.Current.Value.b['active'];
case IndexStr(iterate.Current.Name,['component1','component2','component3','component4','component5'])of
0: component1 := iterate.Current.Value.b['active'];
1: component2 := iterate.Current.Value.b['active'];
2: component3 := iterate.Current.Value.b['active'];
3: component4 := iterate.Current.Value.b['active'];
4: component5 := iterate.Current.Value.b['active'];
end;
end;
iterate.Free;
finally
json := nil;
end;
end;
Kann mir jemand helfen?