![]() |
JSON Elementname mit JSON auslesen
Hallo,
ich versuche mit Superobject eine JSON Struktur (hier vereinfacht dargestellt) auszulesen.
Code:
Und zwar benötige ich Zugriff auf die Profile "Default" und "Nummer1" sowie deren jeweiligen Werte "showname".
{
"profile":{ "names":{ "Default":{"showname":"der angezeigte Profilname"}, "Nummer1":{"showname":"der angezeigte Profilname"} } } }
Delphi-Quellcode:
Wie bekomme ich den Namen des Profiles unterhalb von "names"?
var
vJSON: ISuperObject; vArray : TSuperArray; vItem: ISuperObject; I: Integer; begin vJSON := TSuperObject.ParseFile(filename, true); vArray := vJSON.A['profile.names']; for i := 0 to vArray.Length-1 do begin vItem := vArray.O[i]; showmessage(vItem. ??? ); // <--------------- end; Ich brauche ja den mir erst einmal unbekannten Namen des Profils, um dann den anzuzeigenden Profilnamen ermitteln zu können. Ich stehe leider etwas auf dem Schlauch... Vielen Dank für einen Tipp! |
AW: JSON Elementname mit JSON auslesen
Was unter 'profile.names' steht, ist kein Array, sondern ein Objekt mit 2 Eigenschaften, die jeweils wieder ein Objekt beinhalten.
Soweit ich gesehen habe, bietet SuperObject keinen einfachen Weg, um Name-Wert Paare eines Objekts zu iterieren. Aber so geht es mit ![]()
Delphi-Quellcode:
var
vJSON: TJsonObject; vObj: TJsonObject; vItem: TJsonNameValuePair; begin vJSON := TJsonBaseObject.ParseFromFile(filename, true) as TJsonObject; vObj := vJSON.O['profile'].O['names']; for vItem in vObj do Writeln(vItem.Name, ':', vItem.Value.S['showname']); end. |
AW: JSON Elementname mit JSON auslesen
Hallo und vielen Dank für den Hinweis auf diese Lösung.
Ich werde es ausprobieren. Edit: JsonDataObjects ausprobiert und funktioniert wie gewünscht. Danke :thumb: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:04 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz