Einzelnen Beitrag anzeigen

venice2
(Gast)

n/a Beiträge
 
#20

AW: Json unbekanntes feld abfangen

  Alt 15. Dez 2020, 22:07
Ohne die meisten Debuginfos (Release) wird es kleiner.

Alternativ kannst du auch mit "externen Debuginfos" kompilieren.
Es war ein Witz
Er hat geschrieben 280 MB sollte wohl 280 KB sein.

Habe es mal versucht, es funktioniert auch nicht richtig oder ich mache was falsch.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  iRun, i, nRun: Integer;
  doc: TDocVariantData;
  docChannelGroup: PDocVariantData;
  docChannels: PDocVariantData;
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['channels'].Count - 1 do
      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;
erzählt mir irgendwas von
docChannels.A['channels'].Count wäre 0. ist es aber definitiv nicht.

Ich habe 172 Sender.

Habe die Channels_data.json mal angehängt.

EDIT:
Ok. Das problem ist wohl eher das ich nach dem Eintrag 'display_alias' suchen muss. Dieser hat 172 Einträge.
Wie komme ich daran?

Scheint nicht schlecht zu sein das Teil. @mytbo Danke.
Wenn auch etwas sehr mächtig.

Geändert von venice2 (17. Dez 2020 um 12:15 Uhr)
  Mit Zitat antworten Zitat