Die Idee mit dem Dictionary fand ich gut, bekomme es aber nicht hin.
Der Gedanke war das Dictionary flexibel zu füllen, so sieht mein Versuch aus:
Delphi-Quellcode:
TProjectComponents = class
public
Components: TDictionary<string,boolean>;//
function getComponents(aJsonString: String) : TDictionary<string,boolean>;
// function writeToJson():String;
procedure readFromJson(aJsonString: String);
end;
procedure TProjectComponents.readFromJson(aJsonString: String);
var
json: ISuperObject;
begin
json := SO(aJsonString);
bookableFeature := getComponents(aJsonString);
end;
function getComponents(aJsonString: String) : TDictionary<string,boolean>;
var
val: Boolean;
json: ISuperObject;
iterate: TSuperAvlIterator;
Components :TDictionary<string,boolean>;
begin
try
json := SO(aJsonString);
iterate := json.AsObject.GetEnumerator;
iterate.First;
while iterate.MoveNext do
begin
Components.Add(iterate.Current.Name, iterate.Current.Value.b['active']);
//Components.TryGetValue(iterate.Current.Name, val ) and val;
end;
iterate.Free;
finally
json := nil;
end;
Result := Components;
end;
Beim Add kommt eine
AV die ich mir nicht erklären kann, im Debugger stehen die richtigen Werte als String und Bool.
Was mach ich falsch?