Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi SuperObject falsches auslesen (https://www.delphipraxis.net/174666-superobject-falsches-auslesen.html)

SyntaxXx 4. Mai 2013 13:27

SuperObject falsches auslesen
 
Ich möchte gerne einen String in Form von einen JSon Rückgabewert parsen, bzw bestimmte teile auslesen.
Doch leider hänge ich fest, weil ich einfach nicht den richiten Rückgabewert bekomme.

Doch hier erst einmal nun der JSon String:
Code:
[{"kind": "Listing", "data": {"modhash": "40rzsb0lre6c724078b437d9451d2991e6004a2b6afe5e4d2f", "children": [{"kind": "t3", "data": {"domain": "flic.kr", "banned_by": null, "media_embed": {}, "subreddit": "pics", "selftext_html": null, "selftext": "", "likes": null, "link_flair_text": null, "id": "1doaji", "clicked": false, "title": "I grew up with a bomb shelter in my back yard.", "media": null, "score": 5, "approved_by": null, "over_18": false, "hidden": false, "thumbnail": "http://b.thumbs.redditmedia.com/xMGdxqTo7yuxrd6s.jpg", "subreddit_id": "t5_2qh0u", "edited": false, "link_flair_css_class": null, "author_flair_css_class": null, "downs": 0, "saved": false, "is_self": false, "permalink": "/r/pics/comments/1doaji/i_grew_up_with_a_bomb_shelter_in_my_back_yard/", "name": "t3_1doaji", "created": 1367697518.0, "url": "http://flic.kr/s/aHsjEXdyeP", "author_flair_text": null, "author": "npanth", "created_utc": 1367668718.0, "ups": 5, "num_comments": 1, "num_reports": null, "distinguished": null}}], "after": null, "before": null}}, {"kind": "Listing", "data": {"modhash": "40rzsb0lre6c724078b437d9451d2991e6004a2b6afe5e4d2f", "children": [{"kind": "t1", "data": {"subreddit_id": "t5_2qh0u", "banned_by": null, "subreddit": "pics", "likes": null, "replies": "", "id": "c9s83w4", "gilded": 0, "author": "kasabian1988", "parent_id": "t3_1doaji", "approved_by": null, "body": "I think old bomb shelters are really cool. ", "edited": false, "author_flair_css_class": null, "downs": 0, "body_html": "<div class=\"md\"><p>I think old bomb shelters are really cool. </p>\n</div>", "link_id": "t3_1doaji", "score_hidden": false, "name": "t1_c9s83w4", "created": 1367697683.0, "author_flair_text": null, "created_utc": 1367668883.0, "ups": 1, "num_reports": null, "distinguished": null}}], "after": null, "before": null}}]

Wenn man diesen nun in einen Online JSon Parser eingibt, bekommt man diesen schön unterteilt.
Hier nun der für mich interessante Pfad:
1
|-data
|--|-children
|-------|-0
|---------|-data
|-------------|-body

Und so rufe ich diesen auf:
Delphi-Quellcode:
jSon.S['1.data.children[0].data.body']
Doch jedesmal bekomme ich als Ausgabe "1." zurück.

Könnt ihr mir sagen, wie ich es richtig mache?

sh17 4. Mai 2013 14:08

AW: SuperObject falsches auslesen
 
Ohne jetzt wirklich die Antwort zu kennen, aber müsste das nicht

jSon.S['1.data.children.0.data.body']

heissen?

//Edit ist sicher falsch, aber das [0] stört mich irgend wie. Und vorn die 1. ist auch richtig? möchtest Du da das 2. data-element?

SyntaxXx 4. Mai 2013 14:54

AW: SuperObject falsches auslesen
 
Also wie gesagt, ich habe das jetzt nur anhand eines Online Parsers abgeleitet.
Also das [0] müsste eigentlich richtig sein, da es sich hier um eine aufzählung handelt.

Hier ist jetzt nur 1 Eintrag vorhanden (quasi der nullte Eintrag).
Es wäre aber auch möglich, der zweiten oder dritten Eintrag aufzurufen.

Sir Rufo 4. Mai 2013 15:02

AW: SuperObject falsches auslesen
 
Pauschal (ohne zu testen) hätte ich jetzt mal auf
Delphi-Quellcode:
jSon.S['[1].data.children[0].data.body']
getippt.

EDIT: Und mit testen geht es genau so :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:05 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