JSON parsen mit mehreren Eigenschaften pro Object
Hallo Delphi-Praxis,
ich nutze eine API um Bilder auf eine Webseite zu laden, diese API gibt mir einen JSON-String zurück, den ich nicht so richtig geparsed bekomme. Sobald ein Objekt mehrere Eigenschaft hat kann ich diese nicht mehr Abfragen. Im Netz findet man die Unit "uLkJSON" (sourceforge.net/projects/lkjson/), nach diesem Beispielprojekt (sample 3) hab ich einen Versuch gestartet:
Delphi-Quellcode:
Ich weiß nicht genau ob der Schlüssel public_url in Anführungszeichen gehört oder nicht, an der Speicher Exception ändert das aber auch nichts.
uses
uLkJSON; var JSON, s2: String; js,xs:TlkJSONobject; ws: TlkJSONstring; JSON := '{"image":{"size":293229,"created_at":'+ '"2011-01-29T15:47:43Z","api_client_id":4,"title":null,'+ '"content_type":"image/png","updated_at":"2011-01-29T15:47:43Z",'+ '"user_id":64,"height":256,"filename":"Test.PNG",'+ '"public_view_url":"http://pickhost.eu/view/0004/2631/Test.PNG",'+ '"description":null,"visibility":"private","public_url":'+ '"http://pickhost.eu/images/0004/2631/Test.PNG","width":631}}'; // Der JSON-String der API js := TlkJSON.ParseText(JSON) as TlkJSONobject; s2 := vartostr(js.Field['"public_url"'].Value); form1.Caption := s2; Die ist übrigens ein Cross-Post: http://www.delphi-forum.de/topic_JSO...ct_103859.html Hoffentlich kann mir einer von euch erklären was ich falsch mache. MfG Tony |
AW: JSON parsen mit mehreren Eigenschaften pro Object
Schon mal mit
Code:
probiert?
image.public_url
|
AW: JSON parsen mit mehreren Eigenschaften pro Object
Tipp: unter http://chris.photobooks.com/json/default.htm gibt es ein praktisches Online Werkzeug, das einen JSON String 'visualisiert'.
Wenn man in der Visualisierung auf ein Element der Datenstruktur klickt, wird links davon der Pfad zu diesem Element angezeigt, z.B. bei einem Array auch mit der passenden Indexdarstellung arrayname[v] |
AW: JSON parsen mit mehreren Eigenschaften pro Object
Zitat:
Eine einfaches
Delphi-Quellcode:
reicht aus, um einen Objektbaum aus einem JSON-String zu erzeugen. Dort kann man dann mit
ob:=SO(jsonstring)
Delphi-Quellcode:
auf die einzelnen (String-) Elemente zugreifen, mit
ob.S['pfad']
Delphi-Quellcode:
kommt man an die Objekte und mit
ob.O['pfad']
Delphi-Quellcode:
an die Arrays. Iteratoren gibt es auch;)
ob.A['pfad']
|
AW: JSON parsen mit mehreren Eigenschaften pro Object
Zitat:
Delphi-Quellcode:
s2 := vartostr(js.Field['"image.public_url"'].Value);
|
AW: JSON parsen mit mehreren Eigenschaften pro Object
Zitat:
Ist sicher auch interessant eine Lösung für beides zu haben. |
AW: JSON parsen mit mehreren Eigenschaften pro Object
Zitat:
Delphi-Quellcode:
Schau Dir einfach die WIKI dazu an. ;-)
var
OB: ISuperObject; begin OB:= SO(JSONString); writeln(OB.AsObject.S['Name']); ... ... end; |
AW: JSON parsen mit mehreren Eigenschaften pro Object
Jop mach ich =), werd mich dann melden ;)
|
AW: JSON parsen mit mehreren Eigenschaften pro Object
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz