Einzelnen Beitrag anzeigen

fisipjm

Registriert seit: 28. Okt 2013
283 Beiträge
 
#16

AW: Anzahl Einträge in JsonArray

  Alt Gestern, 06:51
Ich habe die Struktur mal angehangen. Der Knoten 'bm_psi_bulk_prices' ist auf jeden Fall immer vorhanden, aber nicht zwangsläufig gefüllt, und kann auch mehr oder weniger Einträge haben.
Danke für einen kleinen Ansatz, wie ich mich da rantasten kann.
Wie Himitsu ja auch schon mehrfach geschrieben hat, würde ich ein GetValue('bm_psi_bulk_prices') AS TJSONObject oder GetValue('bm_psi_bulk_prices') AS TJSONArray versuchen, je nachdem was dort drin steht (Ohne JSON Struktur mehr Glaskugel als wirklich Hilfe). Ist der Punkt gefüllt hast du dein Arrray/Object in der übergabe oder eben NIL. Das heißt vorher auf nil prüfen wenn nil dann nix machen, wenn nicht nil, dann weiter mit dem was auch immer du machen willst.

Ich weiß der Einsprung in JSON kann einem einen guten Knoten in den Kopf machen, aber so Schwer ist das eigentlich nicht:
JSON hat eigentlich nur 3 Unterschiedliche Arten, der Datenübertragung.
1.) JSONArray - gekennzeichnet durch []
2.) JSONObject - gekennzeichnet durch {}
3.) JSONValue - Key/value pair im Aufbau "MeinString":"mein String" oder "MeinInteger":123

alles wird immer von nächsten Wert mit einem Komma abgegrenzt. Zu allen Teilen gibt es in Delphi Entsprechungen (Mehrfach) die das einlesen können und mit dem du die Struktur durchgehen kannst.
Alle Möglichkeiten findest du hier:
https://docwiki.embarcadero.com/RADS...Athens/en/JSON



vG
Patrick

PS: Hab gerade das BIld gesehen, ist noch Früh
Also die Abfrage wäre dann auf GetValue('value') AS TJSONArray. Das Array musst du dann wieder einzeln durchgehen und die einzelnen Objects auslesen, wenn das Array nicht nil ist.
Ich würde dir Empfehlen JSON Code in z.B. Notepad++ anzusehen, lade dir zur not einen JSON prettyfier herunter. Dann siehst du aber auch direkt was ein Array und was ein Objekt ist, hab das Gefühl durch deinen Viewer machst du dir den Einstieg nur noch schwieriger.

Geändert von fisipjm (Gestern um 06:54 Uhr)
  Mit Zitat antworten Zitat