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)