Einzelnen Beitrag anzeigen

venice2
(Gast)

n/a Beiträge
 
#1

Json unbekanntes feld abfangen

  Alt 15. Dez 2020, 09:47
Habe jetzt mal den channel entfernt und gehe nur über programs (nur zum testen).
Habe jetzt folgendes Problem.

Ich habe die Felder vordefiniert.
Delphi-Quellcode:
  EntryEpgNames: TEpgEntryNames = ('i_url', 'e', 'g', 'ry_u', 'i', 'sr_u', 'c',
    'r_e', 'rg_u', 'e_no', 's', 't', 'ser_e', 'c_ids', 'et', 'i_t','ts_id',
    'id', 'tms_id', 's_no', 'success');
jetzt kann es vorkommen das ein Feld nicht existiert warum auch immer.
Als Beispiel 5 Arrays habe den Eintrag 'ry_u' das 6 aber nicht.

Wie kann ich das abfangen so das der json string trotzdem weiter analysiert wird.
Bei mir springt er raus wenn er fehlt.

Ich habe ja keinen Einfluss darauf welche Daten übergeben werden.

Hier!
Delphi-Quellcode:
  case VarType(AData) and VarTypeMask of

    varString,
    varUString,
    varWord,
    varLongWord:
      begin
        if not FItems.TryGetValue(AData, Result) then
          raise EJSONUnknownFieldOrIndex.Create(format('Unknown field: %s', //<<<<<<
            [AData]))
        else
        exit;
      end;
Sehr stressig Json aber besser als mit pos alles von Hand auszuwerten. (Wenn es denn funktioniert)

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