Einzelnen Beitrag anzeigen

Bbommel

Registriert seit: 27. Jun 2007
Ort: Köln
655 Beiträge
 
Delphi 12 Athens
 
#6

AW: Wie geht das: JSON Parser

  Alt 24. Mär 2023, 16:51
Naja, in deinem Beispiel sieht man keine Sub-Arrays. Aber eigentlich solltest du jetzt schon alles beisammen haben, um auch an die Sub-Arrays zu kommen. Ein Beispiel aber noch:

Code:
[
  {
    "id": 799,
    "name": "Ship Your Idea",
    "slug": "ship-your-idea-22",
    "wuppdi": [
                {
                   "name": "horst",
                   "id": 1
                },
                {
                   "name": "klaus",
                   "id": 2
                }
             ]
  }
]
Hier hast du also in "wuppdi" ein Unter-Array.

Um darauf zuzugreifen, könnte man den vorigen Code so erweitern:

Delphi-Quellcode:
  Var
    jValue :TJSONValue;
    jArray: TJSONArray;
    subValue: TJSONValue;
    subArray: TJSONArray;
    Obj: TJsonObject;


  RESTRequest1.Execute;
  jValue := RESTResponse1.JSONValue;
  
  // Im Memo steht nun die JSON Antwort, so wie ich sie erwarte.
  Memo1.Text := jValue.ToString;

  jArray := RESTResponse1.JSONValue as TJSONArray;

  // ist überhaupt was im Array?
  if jArray.Count>0 then begin
    obj:=jArray.Items[0] as TJSONobject;
    subValue:=obj.GetValue('wuppdi');
    if subValue<>nil then begin
      subArray:=subValue as TJSONArray;
      if subArray.Count>0 then begin
        [... hier dann etwas mit dem Sub-Array machen ...]
      end;
    end;
    
    [... hier dann was mit dem obj machen ...]
  end;

  // oder alle Elemente durchgehen...
  for var i:=0 to jArray.Count-1 do begin
     [... mit jedem Item irgendwas machen ...]
  end;
Ich schätze, jetzt sollte das Grundprinzip so halbwegs klar sein.
  Mit Zitat antworten Zitat