Einzelnen Beitrag anzeigen

venice2
(Gast)

n/a Beiträge
 
#1

SynCommons und parsen von Json

  Alt 9. Jan 2021, 21:23
Habe leider wieder ein Problem mit dem Parsen von Json.

Delphi-Quellcode:
type
  PNextData = ^TNextData;
  TNextData = record
      e: LongInt;
      i: string;
      s: LongInt;
      t: string;
      et: string;
      i_t: string;
      id: LongInt;
  end;

  PNowData = ^TNowData;
  TNowData = record
      e: LongInt;
      i: string;
      s: LongInt;
      t: string;
      et: string;
      i_t: string;
      id: LongInt;
  end;

  TChannelsData = record
    display_alias: string;
    sharing: BOOL;
    is_radio: BOOL;
    title: string;
    cid: string;
    number: LongInt;
    next: TNextData;
    recording: BOOL;
    qualities: TQualitiesData;
    recommendations: BOOL;
    selective_recall_seconds: LongInt;
    now: TNowData;
    id: string;
    success: BOOL;
  end;
Code:
"channels": [
   {
      "display_alias": "daserste",
      "sharing": true,
      "is_radio": false,
      "title": "Das Erste HD",
      "cid": "ard",
      "number": 1,
      "next": {
         "e": 1610218800,
         "i": "http://images.zattic.com/cms/c2a2af13363a5de5014d/format_480x360.jpg",
         "s": 1610218620,
         "t": "Lotto am Samstag",
         "et": "Gewinnzahlen der 1. Ausspielung",
         "i_t": "c2a2af13363a5de5014d",
         "id": 206034601
      },
      "recording": true,
      "qualities": [
         {
            "logo_black_84": "/logos/2a2a4aee64bbd6f7f817/black/84x48.png",
            "title": "Das Erste HD",
            "stream_types": [
               "dash",
               "dash_playready",
               "dash_widevine",
               "hls7",
               "hls7_fairplay"
            ],
qualities ist ein array []
docQualities := docChannels.A['qualities']._[xRun];

funktioniert.

Was ist aber nun next {} ?
Damit geht es nicht da dies anscheinend kein Array ist.
docNext := docChannels.A['next']._[xRun];

Ist die Json falsch? oder wie muß ich den Rekord zuweisen? (Die Einträge davon)
Geht leider nicht.

gChannels[i].next.t := docNext.S['t'];

Geändert von venice2 ( 9. Jan 2021 um 21:27 Uhr)
  Mit Zitat antworten Zitat