HA - ich habs raus !
Delphi-Quellcode:
// https://www.generacodice.com/en/articolo/4308375/how-to-parse-nested-json-object-in-delphi-xe2
procedure TForm1.ParseJson(data : string);
var
JsonObj : TJSONObject;
JsonValue : TJSonValue;
chl : TJSonValue;
dat : TJSonValue;
JsonPair : TJSONPair;
DataPair : TJSONPair;
i, ii, n : integer;
LItem : TJSONValue;
begin
Memo.Lines.BeginUpdate;
JsonObj := TJSONObject.ParseJSONValue(TEncoding.ASCII.GetBytes(data),0) as TJSONObject;
try
JsonValue := JsonObj.Get('channels').JsonValue;
for i :=0 to TJSONArray(JsonValue).Size - 1 do
begin
chl := TJSONArray(JsonValue).Get(i);
JsonPair := TJSONPair(chl);
Memo.Lines.Add(Format('Channel: %s',[JsonPair.JsonString.Value]));
n := 1;
for LItem in TJSONArray(JsonPair.JsonValue) do
begin
Memo.Lines.Add('-- Programm: ' + inttostr(n));
inc(n);
for ii := 0 to TJSONArray(LItem).Size - 1 do
begin
dat := TJSONArray(LItem).Get(ii);
DataPair := TJSONPair(dat);
Memo.Lines.Add(Format(' ---- %s : %s',[DataPair.JsonString.Value, DataPair.JsonValue.Value]));
end;
end;
end;
finally
JsonObj.Free;
end;
Memo.Lines.EndUpdate;
end;
Das war zwar mit Vollgas Versuch und Irrtum, aber lüppt.