Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Json unbekanntes feld abfangen (https://www.delphipraxis.net/206370-json-unbekanntes-feld-abfangen.html)

venice2 15. Dez 2020 08:47

Json unbekanntes feld abfangen
 
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)

venice2 15. Dez 2020 16:23

AW: Json unbekanntes feld abfangen
 
Kennt sich wirklich niemand mit Json aus?
Kann ich mir eigentlich nicht vorstellen.

Hmmm...

Der schöne Günther 15. Dez 2020 17:02

AW: Json unbekanntes feld abfangen
 
Vielleicht liegt es an mir, aber ich schaffe es nicht, eine konkrete Frage herauszulesen. Wie sieht das JSON konkret aus und welche Bibliothek verwendest du zum Parsen?

venice2 15. Dez 2020 17:30

AW: Json unbekanntes feld abfangen
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1479164)
Vielleicht liegt es an mir, aber ich schaffe es nicht, eine konkrete Frage herauszulesen. Wie sieht das JSON konkret aus und welche Bibliothek verwendest du zum Parsen?

Json unbekanntes Feld abfangen?

Im Array befindet sich ein Feld das in der übergebenen Datei nicht vorhanden ist.

Das will ich abfangen dabei ist es unerheblich welchen Parser oder Bibliothek ich verwende weil es eine allgemein Frage ist.
Danke trotzdem.

Zitat:

Wie kann ich das abfangen so das der json string trotzdem weiter analysiert wird.

Uwe Raabe 15. Dez 2020 17:52

AW: Json unbekanntes feld abfangen
 
Und wenn du das
Delphi-Quellcode:
raise
in dem Code einfach weglässt?

venice2 15. Dez 2020 17:54

AW: Json unbekanntes feld abfangen
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1479168)
Und wenn du das
Delphi-Quellcode:
raise
in dem Code einfach weglässt?

Danke Uwe habe ich versucht hat keine Auswirkung.

Uwe Raabe 15. Dez 2020 17:57

AW: Json unbekanntes feld abfangen
 
In dem Fall ist das Code-Schnipsel offenbar zu kurz. Interessant wäre insbesondere der Teil, der die Verwendung von
Delphi-Quellcode:
EntryEpgNames
zeigt. Auch ein komplettes JSON in unterschiedlichen Ausprägungen wäre eventuell hilfreich.

venice2 15. Dez 2020 17:59

AW: Json unbekanntes feld abfangen
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1479170)
In dem Fall ist das Code-Schnipsel offenbar zu kurz. Interessant wäre insbesondere der Teil, der die Verwendung von
Delphi-Quellcode:
EntryEpgNames
zeigt. Auch ein komplettes JSON in unterschiedlichen Ausprägungen wäre eventuell hilfreich.

Bitte.
https://www.delphipraxis.net/1479107-post3.html

mytbo 15. Dez 2020 18:40

AW: Json unbekanntes feld abfangen
 
Wäre es auch möglich, eine JSON-Datei mit Demodaten zur Verfügung zustellen?

Bis bald...
Thomas

venice2 15. Dez 2020 18:42

AW: Json unbekanntes feld abfangen
 
Zitat:

Zitat von mytbo (Beitrag 1479173)
Wäre es auch möglich, eine JSON-Datei mit Demodaten zur Verfügung zustellen?

Bis bald...
Thomas

Edit:
Entfernt im nächsten Beitrag enthalten.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:17 Uhr.
Seite 1 von 4  1 23     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz