Zitat:
Wenn du heute Abend (Nacht) noch ein Problem damit hast, sage einfach bescheid. Ich schaue mir das dann gerne mal an.
Das ist nett von dir werde es mal implementieren.
Danke schön.
Hmm.. Ich glaube wir haben uns nicht richtig verstanden.
Dein Schnipsel gibt mir die Value von display_alias zurück.
Das ist aber nicht was ich wollte.
Mein bestreben ist in der Json nach 'display_alias' zu suchen und darauf hin den Count auszulegen.
display_alias kommt 172 mal in der Json vor diese und die nachfolgenden Einträge muss ich parsen bis zum nächsten 'display_alias'
und so lange bis er halt nicht mehr vorkommt.
Also nicht auf docChannels sondern auf
docChannels.S['display_alias']
Es gibt ja nur diese möglichkeiten..
docChannels.SearchItemByProp
docChannels.SearchItemByValue
aber beides führte nicht zum gewünschten Ergebnis.
PS:
EPG ist fertig und funktioniert soweit.
Nun muss ich nur noch die Channels erfolgreich rüberbringen.
so geht es nicht..
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
type
TChannelsData = record
display_alias: string;
sharing: BOOL;
is_radio: BOOL;
title: string;
cid: string;
number: LongInt;
recording: BOOL;
success: BOOL;
end;
var
iRun, i, nRun: Integer;
doc: TDocVariantData;
docChannelGroup: PDocVariantData;
docChannels: PDocVariantData;
x: TRawUtf8DynArray;
gChannels: array of TChannelsData;
begin
doc.InitJSONFromFile('Channels_data.json', JSON_OPTIONS_FAST_EXTENDED);
if not doc.B['success'] then
Exit; //=>
for iRun := 0 to doc.A['channel_groups'].Count - 1 do
begin
docChannelGroup := doc.A['channel_groups']._[iRun];
for nRun := 0 to docChannelGroup.A['channels'].Count - 1 do
begin
docChannels := docChannelGroup.A['channels']._[nRun];
for i := 0 to docChannels.A['display_alias'].Count - 1 do // Wie komme ich an den Count und wie finde ich den nächsten Eintrag von 'display_alias'
begin
setLength(gChannels, i + 1);
gChannels[i].display_alias := docChannels.S['display_alias'];
gChannels[i].sharing := docChannels.B['sharing'];
gChannels[i].is_radio := docChannels.B['is_radio'];
gChannels[i].title := docChannels.S['title'];
gChannels[i].cid := docChannels.S['cid'];
gChannels[i].number := docChannels.I['number'];
gChannels[i].recording := docChannels.B['recording'];
end;
end;
end;
end;