Einzelnen Beitrag anzeigen

IMPEGA

Registriert seit: 19. Jan 2008
Ort: Brhv
80 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

JSON Wert lesen

  Alt 8. Jan 2021, 10:48
Ich versuche vergeblich 3 Werte aus "art" lesen. (Bin nur ein Hobbyprogrammieren)
"id": "829",
"status": "1",
"changed": "2020-16-28 11:41:26"

Ohne diesen Array, komme ich mit JSON klar, sobald es geschachtelt wird kriege ich ständig Fehler.
Ich kann den zweiten Array nicht auslesen.

Mein JSON String
Code:
{
   "js":{
      "today":"67",
      "old":14,
      "selected_item":1,
      "data":[
         {
            "nr":"525",
            "name":"crane",
            "number":"26",
            "service_id":"723851235",
            "logo":"15.png",
            "art":[
               {
                  "id":"829",
                  "shelf":"12",
                  "status":"1",
                  "changed":"2020-16-28 11:41:26"
               }
            ],
            "use_logo":"1"
         },
         {
            "nr":"528",
            "name":"poetry",
            "number":"26",
            "service_id":"723851235",
            "logo":"15.png",
            "art":[
               {
                  "id":"829",
                  "shelf":"12",
                  "status":"1",
                  "changed":"2020-16-28 11:41:26"
               }
            ],
            "use_load_balancing":"1"
         }
      ]
   }
}

Das wäre mein normaler Fall
Code:
{
    "js": [
        {
            "id": "*",
            "name": "crane",
            "nr": "528",
            "service_id": "723851235",
            "logo": "15.png",
            "status": "1",
            "changed": "2020-16-28 11:41:26",
            "number": 56
        },
        {
            "id": "107",
            "name": "poetry",
            "nr": "358",
            "service_id": "6599235",
            "logo": "395.png",
            "status": "1",
            "changed": "2020-16-29 13:17:11",
            "number": 182
        }
    ]
}
So lese ich die Daten aus:
Delphi-Quellcode:
procedure TForm1.Button4Click(Sender: TObject);
var
  ID : string;
  Status : string;
  Changed : string;
  JSonValue : TJSonValue;
  JsonArray : TJSONArray;
  ArrElement : TJSonValue;
begin
  JsonValue := TJsonObject.ParseJSONValue(Memo5.Text) as TJSONObject;
  JsonValue := (JsonValue as TJSONObject).Get('js').JSONValue;
    if (JSONValue is TJSONArray) then
      begin
        JSONArray := JsonValue as TJSONArray;
          for ArrElement in JSONArray do
            begin
              ID := ArrElement.GetValue<string>('id');
              Status := ArrElement.GetValue<string>('status');
              Changed := ArrElement.GetValue<string>('changed');
            end;
      end;
end;
Sobald ich in den Unterbereich "art" greifen will, bekomme ich ständig Fehler.
Ich poste hier kein Muster wie ich es versucht habe, weil es sehr viel Versuche waren.
Kann mir Jemand unter die Arme greifen? Wäre supi.

Geändert von IMPEGA ( 8. Jan 2021 um 11:01 Uhr)
  Mit Zitat antworten Zitat