Einzelnen Beitrag anzeigen

Der schöne Günther

Registriert seit: 6. Mär 2013
6.176 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: JSON iterieren, aber wie?

  Alt 24. Jun 2022, 09:40
Das gegebene ist ein TJsonObject.
Es enthält das TJsonArray mit dem Namen "data". Das enthält mehrere TJsonObject, welche nur eine TJsonObject "article" enthalten.

Im Endeffekt gibt es zwei Möglichkeiten:
  1. Du bildest die ganzen Dinge wie z.B. "article" als Delphi-Objekt ab und lässt dir den gesamten Kram als Delphi-Struktur deserialisieren
  2. Dich interessiert nur etwas wie z.B. "Gib mir einfach nur alle Artikelnamen" und holst dir mit dem Weg des geringsten Widerstandes auf direktem Wege ebendiese Daten

Das einmal als Beispiel, im Endeffekt wie ein Beitrag weiter oben, nur halt lieber mit einem "Path" anstatt mit Zwischen-Variablen:

Delphi-Quellcode:
program Project1;

uses System.SysUtils, System.JSON;

const
   JSON = '{ ... }';
var
   jsonObj: TJsonObject;
begin
   jsonObj := TJSONObject.ParseJSONValue(JSON) as TJsonObject;

   var count := jsonObj.GetValue<TJsonArray>('data').Count;
   WriteLn('Wir haben ', count, ' Einträge');

   for var index := 0 to Pred(count) do
    begin
      var path := String.Format('data[%d].article.name', [index]);
      var articleName := jsonObj.GetValue<String>(path);
      WriteLn('Artikel: ', articleName);
    end;

   ReadLn;
end.
  Mit Zitat antworten Zitat