Thread View: pl.comp.lang.delphi
19 messages
19 total messages
Started by goo-mlyny
Wed, 17 Jan 2018 09:41
obróbka JSON
Author: goo-mlyny
Date: Wed, 17 Jan 2018 09:41
Date: Wed, 17 Jan 2018 09:41
17 lines
1829 bytes
1829 bytes
Mam takie coś (to przykład):
{
"success":true,
"result":
{
"token":"bardzoskomplikowanyitajnytokenniewiadomodoczego",
"profile":
{
"login":"tojest@email.email",
"_id":"poin773451219hb65ss75",
"lastSelectedOffice":"774hhs8nx8s66s234"
}
}
}
Jak sensownie wyciągać z tego dane? Np. że jest "success" i jaką ma wartość, że np. nie ma "password" (gdyby było, to mogłoby być na dowolnym poziomie zagłębienia),
że "result" to nie pojedyncza wartość itp.
Re: obróbka JSON
Author: Jan Drawski
Date: Wed, 17 Jan 2018 09:56
Date: Wed, 17 Jan 2018 09:56
2 lines
1237 bytes
1237 bytes
Do JSONa chyba najpopularniejszy: https://github.com/hgourvest/superobject
Re: obróbka JSON
Author: Stregor
Date: Wed, 17 Jan 2018 12:24
Date: Wed, 17 Jan 2018 12:24
47 lines
2194 bytes
2194 bytes
W dniu 2018-01-17 o 10:41, goo-mlyny@ciach.net pisze:
> Mam takie coś (to przykład):
> {
> "success":true,
> "result":
> {
> "token":"bardzoskomplikowanyitajnytokenniewiadomodoczego",
> "profile":
> {
> "login":"tojest@email.email",
> "_id":"poin773451219hb65ss75",
> "lastSelectedOffice":"774hhs8nx8s66s234"
> }
> }
> }
>
> Jak sensownie wyciągać z tego dane? Np. że jest "success" i jaką ma
wartość,
Na przykład tak, używając wbudowanego JSONa (System.JSON):
lJSONString: string; //Twój JSON
lJson: TJSONObject;
lSuccess: TJSONBool;
lJson := TJSONObject.Create;
[...]
if lJson.Parse(BytesOf(lJSONString), 0) <> -1 then
begin
lValue := TJSONBool(lJson.GetValue('success'));
if Assigned(lValue) then
begin
end;
end
[...]
że np. nie ma "password" (gdyby było, to mogłoby być na dowolnym
poziomie zagłębienia),
> że "result" to nie pojedyncza wartość itp.
Możesz dostać się do całego JSONA jako do tablicy i iterować po jej
elementach:
https://stackoverflow.com/questions/14864170/how-to-parse-a-json-array-in-rad-studio
--
Pozdrawiam,
Stregor
Re: obróbka JSON
Author: goo-mlyny
Date: Wed, 17 Jan 2018 13:14
Date: Wed, 17 Jan 2018 13:14
46 lines
2960 bytes
2960 bytes
W dniu środa, 17 stycznia 2018 13:24:30 UTC+1 użytkownik Stregor napisał:
> W dniu 2018-01-17 o 10:41, goo-mlyny ... ciach.net pisze:
> > Mam takie coś (to przykład):
> > {
> > "success":true,
> > "result":
> > {
> > "token":"bardzoskomplikowanyitajnytokenniewiadomodoczego",
> > "profile":
> > {
> > "login":"tojest@email.email",
> > "_id":"poin773451219hb65ss75",
> > "lastSelectedOffice":"774hhs8nx8s66s234"
> > }
> > }
> > }
> >
> > Jak sensownie wyciągać z tego dane? Np. że jest "success" i jaką ma
> wartość,
>
> Na przykład tak, używając wbudowanego JSONa (System.JSON):
>
> lJSONString: string; //Twój JSON
> lJson: TJSONObject;
> lSuccess: TJSONBool;
>
> lJson := TJSONObject.Create;
> [...]
> if lJson.Parse(BytesOf(lJSONString), 0) <> -1 then
> begin
> lValue := TJSONBool(lJson.GetValue('success'));
> if Assigned(lValue) then
> begin
> end;
> end
> [...]
O - to wygląda ciekawie. Popróbuję sobie, dzięki za naprowadzenie.
>
> że np. nie ma "password" (gdyby było, to mogłoby być na dowolnym
> poziomie zagłębienia),
> > że "result" to nie pojedyncza wartość itp.
>
> Możesz dostać się do całego JSONA jako do tablicy i iterować po jej
> elementach:
> https://stackoverflow.com/questions/14864170/how-to-parse-a-json-array-in-rad-studio
Re: obróbka JSON
Author: goo-mlyny
Date: Thu, 18 Jan 2018 11:21
Date: Thu, 18 Jan 2018 11:21
3 lines
1604 bytes
1604 bytes
W dniu środa, 17 stycznia 2018 13:24:30 UTC+1 użytkownik Stregor napisał:
> lValue := TJSONBool(lJson.GetValue('success'));
Jakiego typu ma być lValue ?
Re: obróbka JSON
Author: goo-mlyny
Date: Thu, 18 Jan 2018 11:23
Date: Thu, 18 Jan 2018 11:23
8 lines
1720 bytes
1720 bytes
W dniu środa, 17 stycznia 2018 13:24:30 UTC+1 użytkownik Stregor napisał: > Możesz dostać się do całego JSONA jako do tablicy i iterować po jej > elementach: > https://stackoverflow.com/questions/14864170/how-to-parse-a-json-array-in-rad-studio To nie radzi sobie np. z tym moim JSONem - pokazuje tylko 2 element, przy czym drugi - "result" nie ma wartości. No nic, szukam i testuję dalej :)
Re: obróbka JSON
Author: Roman Tyczka
Date: Thu, 18 Jan 2018 11:56
Date: Thu, 18 Jan 2018 11:56
19 lines
1566 bytes
1566 bytes
On Thu, 18 Jan 2018 03:23:49 -0800 (PST), goo-mlyny@ciach.net wrote: >> Możesz dostać się do całego JSONA jako do tablicy i iterować po jej >> elementach: >> https://stackoverflow.com/questions/14864170/how-to-parse-a-json-array-in-rad-studio > To nie radzi sobie np. z tym moim JSONem - pokazuje tylko 2 element, przy czym drugi - "result" nie ma wartości. Nie to sobie nie radzi tylko Ty. > No nic, szukam i testuję dalej :) A może byś poczytał jak to działa i jak tego użyć? A najlepiej zacznij od tego czym jest JSON, jaką ma strukturę i składnię. https://pl.wikipedia.org/wiki/JSON -- pozdrawiam Roman Tyczka
Re: obróbka JSON
Author: Andrzej S
Date: Fri, 19 Jan 2018 12:37
Date: Fri, 19 Jan 2018 12:37
10 lines
1445 bytes
1445 bytes
W dniu 2018-01-18 12:56, Roman Tyczka pisze: > > A może byś poczytał jak to działa i jak tego użyć? A najlepiej zacznij od > tego czym jest JSON, jaką ma strukturę i składnię. > > https://pl.wikipedia.org/wiki/JSON > Bardzo użyteczna pomoc mądralo.
Re: obróbka JSON
Author: Roman Tyczka
Date: Fri, 19 Jan 2018 13:35
Date: Fri, 19 Jan 2018 13:35
18 lines
1520 bytes
1520 bytes
On Fri, 19 Jan 2018 13:37:43 +0100, Andrzej S wrote: >> A może byś poczytał jak to działa i jak tego użyć? A najlepiej zacznij od >> tego czym jest JSON, jaką ma strukturę i składnię. >> >> https://pl.wikipedia.org/wiki/JSON >> > > Bardzo użyteczna pomoc mądralo. Wiem, że "użyteczna pomoc" to wklejki gotowców, które się bezmyślnie przekleja. Ale programowanie metodą Kopiego And Pejsta szybko się mści, a jak się komuś nie chce czytać to dlaczego mam za niego odwalać robotę, mądralo? -- pozdrawiam Roman Tyczka
Re: obróbka JSON
Author: ExM
Date: Mon, 22 Jan 2018 15:15
Date: Mon, 22 Jan 2018 15:15
6 lines
1926 bytes
1926 bytes
W dniu środa, 17 stycznia 2018 10:41:03 UTC+1 użytkownik goo-...@ciach.net napisał: > Jak sensownie wyciągać z tego dane? Np. że jest "success" i jaką ma wartość, że np. nie ma "password" (gdyby było, to mogłoby być na dowolnym poziomie zagłębienia), > że "result" to nie pojedyncza wartość itp. Ja używam tego: https://www.winsoft.sk/json.htm Działa też na starszych wersjach Delphi (np. 5 :) ) i daje fajne i proste narzędzia dostępu do wybranej gałęzi.
Re: obróbka JSON
Author: goo-mlyny
Date: Mon, 22 Jan 2018 15:59
Date: Mon, 22 Jan 2018 15:59
5 lines
1701 bytes
1701 bytes
W dniu poniedziałek, 22 stycznia 2018 16:15:08 UTC+1 użytkownik ExM napisał: > > Ja używam tego: https://www.winsoft.sk/json.htm > Działa też na starszych wersjach Delphi (np. 5 :) ) i daje fajne i proste narzędzia dostępu do wybranej gałęzi. Dzięki, popatrzę sobie.
Re: obróbka JSON
Author: Stregor
Date: Tue, 23 Jan 2018 08:17
Date: Tue, 23 Jan 2018 08:17
11 lines
1543 bytes
1543 bytes
W dniu 2018-01-18 o 12:21, goo-mlyny@ciach.net pisze:
> W dniu środa, 17 stycznia 2018 13:24:30 UTC+1 użytkownik Stregor napisał:
>> lValue := TJSONBool(lJson.GetValue('success'));
> Jakiego typu ma być lValue ?
Pisałem z palca :)
zamiast lValue wpisz lSuccess, typu TJSONBool
--
Pozdrawiam,
Stregor
Re: obróbka JSON
Author: wloochacz
Date: Tue, 23 Jan 2018 15:27
Date: Tue, 23 Jan 2018 15:27
14 lines
1839 bytes
1839 bytes
W dniu 2018-01-22 o 16:15, ExM pisze: > W dniu środa, 17 stycznia 2018 10:41:03 UTC+1 użytkownik goo-...@ciach.net napisał: >> Jak sensownie wyciągać z tego dane? Np. że jest "success" i jaką ma wartość, że np. nie ma "password" (gdyby było, to mogłoby być na dowolnym poziomie zagłębienia), >> że "result" to nie pojedyncza wartość itp. > > Ja używam tego: https://www.winsoft.sk/json.htm > Działa też na starszych wersjach Delphi (np. 5 :) ) i daje fajne i proste narzędzia dostępu do wybranej gałęzi. To już chyba lepiej, a na pewno taniej (bo za free) skorzystać TDocVariant: https://synopse.info/files/html/Synopse%20mORMot%20Framework%20SAD%201.18.html#TITL_80 http://blog.synopse.info/post/2014/02/25/TDocVariant-custom-variant-type -- wloochacz
Re: obróbka JSON
Author: goo-mlyny
Date: Wed, 24 Jan 2018 07:41
Date: Wed, 24 Jan 2018 07:41
7 lines
1877 bytes
1877 bytes
W dniu wtorek, 23 stycznia 2018 16:27:13 UTC+1 użytkownik wloochacz napisał: > To już chyba lepiej, a na pewno taniej (bo za free) skorzystać TDocVariant: > https://synopse.info/files/html/Synopse%20mORMot%20Framework%20SAD%201.18.html#TITL_80 > http://blog.synopse.info/post/2014/02/25/TDocVariant-custom-variant-type Też wygląda bardzo ciekawie i wydaje się dobrze udokumentowane. W weekend potrenuję :) Andrzej
Re: obróbka JSON
Author: ExM
Date: Wed, 24 Jan 2018 08:49
Date: Wed, 24 Jan 2018 08:49
9 lines
2215 bytes
2215 bytes
W dniu wtorek, 23 stycznia 2018 16:27:13 UTC+1 użytkownik wloochacz napisał: > To już chyba lepiej, a na pewno taniej (bo za free) skorzystać TDocVariant: > https://synopse.info/files/html/Synopse%20mORMot%20Framework%20SAD%201.18.html#TITL_80 > http://blog.synopse.info/post/2014/02/25/TDocVariant-custom-variant-type No... ciekawe narzędzie. Nie wiem tylko czy uda mi się go odpalić na Delphi 5 Dla tego wybrałem WinSoft że działa na staruszku D5 w którym projekt muszę ciągnąć. Większość komponentów i bibliotek które robią coś z JSONem wymaga modułu variants.pas który pojawił się bodajże od Delphi 2010 Ale kto wie ... może synopse zadziała - sprawdzę. Pytanie jeszcze o ile większy będzie kod aplikacji :P
Re: obróbka JSON
Author: wloochacz
Date: Wed, 24 Jan 2018 12:02
Date: Wed, 24 Jan 2018 12:02
18 lines
2209 bytes
2209 bytes
W dniu 2018-01-24 o 09:49, ExM pisze: > W dniu wtorek, 23 stycznia 2018 16:27:13 UTC+1 użytkownik wloochacz napisał: >> To już chyba lepiej, a na pewno taniej (bo za free) skorzystać TDocVariant: >> https://synopse.info/files/html/Synopse%20mORMot%20Framework%20SAD%201.18.html#TITL_80 >> http://blog.synopse.info/post/2014/02/25/TDocVariant-custom-variant-type > > No... ciekawe narzędzie. Nie wiem tylko czy uda mi się go odpalić na Delphi 5 > Dla tego wybrałem WinSoft że działa na staruszku D5 w którym projekt muszę ciągnąć. Większość komponentów i bibliotek które robią coś z JSONem wymaga modułu variants.pas który pojawił się bodajże od Delphi 2010 Bodajże to bzdura na resorach; oidp, to modul variants jest od Delphi 6. Wcześniej taki typ też był, ale nie pamiętam w jaki module (SysUtils?). > Ale kto wie ... może synopse zadziała - sprawdzę. Pytanie jeszcze o ile większy będzie kod aplikacji :P Powinno działać, autor pisze o tym tu: https://synopse.info/forum/viewtopic.php?id=1918 -- wloochacz
Re: obróbka JSON
Author: ExM
Date: Wed, 24 Jan 2018 12:42
Date: Wed, 24 Jan 2018 12:42
12 lines
2635 bytes
2635 bytes
W dniu środa, 24 stycznia 2018 13:02:55 UTC+1 użytkownik wloochacz napisał: > Bodajże to bzdura na resorach; oidp, to modul variants jest od Delphi 6. > Wcześniej taki typ też był, ale nie pamiętam w jaki module (SysUtils?). Czepiasz się nieistotnych szczegółów. Ważne że w D5 nie ma. Nie napisałem że w D5 brakuje >>typu<< variant ale >>modułu<< variant.pas w którym są funkcje nieobecne w D5. Walczyłem z próbami dostosowania najbardziej popularnych obecnie komponentów JSON ale zbyt wielu funkcji z variant.pas brakowało. Chciałem nawet przenieść do D5 ten moduł w całości ale jak zaczęły się zależności do kolejnych to odpuściłem a bez tego nie dało się skompilować komponentów JSONowych > > Ale kto wie ... może synopse zadziała - sprawdzę. Pytanie jeszcze o ile większy będzie kod aplikacji :P > Powinno działać, autor pisze o tym tu: > https://synopse.info/forum/viewtopic.php?id=1918 To dobra wiadomość - na pewno sprawdzę szczególnie że Synopse ma znacznie więcej ciekawych funkcji. Dzięki za info.
Re: obróbka JSON
Author: Roman Tyczka
Date: Wed, 24 Jan 2018 19:23
Date: Wed, 24 Jan 2018 19:23
17 lines
1732 bytes
1732 bytes
On Wed, 24 Jan 2018 04:42:04 -0800 (PST), ExM wrote: >> Bodajże to bzdura na resorach; oidp, to modul variants jest od Delphi 6. >> Wcześniej taki typ też był, ale nie pamiętam w jaki module (SysUtils?). > Czepiasz się nieistotnych szczegółów. Ważne że w D5 nie ma. Trzymając się D5 skazujesz się na korzystanie ze starych i zacofanych narzędzi, bibliotek i technologii, po prostu świat poszedł do przodu i Delphi, które ma obecnie prawie 20 lat jest zwyczajnie antyczne. Zamiast się z tym siłować wybierz inną drogę: - zainwestuj w nowe środowisko - użyj darmowej wersji Starter - przejdź na FPC i Lazarusa -- pozdrawiam Roman Tyczka
Re: obróbka JSON
Author: ExM
Date: Wed, 24 Jan 2018 20:51
Date: Wed, 24 Jan 2018 20:51
28 lines
3451 bytes
3451 bytes
W dniu środa, 24 stycznia 2018 20:23:05 UTC+1 użytkownik Roman Tyczka napisał: > On Wed, 24 Jan 2018 04:42:04 -0800 (PST), ExM wrote: > > >> Bodajże to bzdura na resorach; oidp, to modul variants jest od Delphi 6. > >> Wcześniej taki typ też był, ale nie pamiętam w jaki module (SysUtils?). > > Czepiasz się nieistotnych szczegółów. Ważne że w D5 nie ma. > > Trzymając się D5 skazujesz się na korzystanie ze starych i zacofanych > narzędzi, bibliotek i technologii, po prostu świat poszedł do przodu i > Delphi, które ma obecnie prawie 20 lat jest zwyczajnie antyczne. Nie do końca. O ile samo Delphi faktycznie sporo obecnie ułatwia pisanie kodu o tyle dzięki temu że korzystam w nim z całkiem współczesnych komponentów to aplikacja wygląda całkiem ładnie i dostarcza wszelkich współczesnych technologii (np.: REST/JSON, db od Devart czy raporty na Fast Report) > Zamiast się z tym siłować wybierz inną drogę: > - zainwestuj w nowe środowisko > - użyj darmowej wersji Starter > - przejdź na FPC i Lazarusa Tak też uczyniłem - mam XE7 Professional i przygotowuje się do przejścia. Ale ilość problemów jakie czekają po drodze jest ogromna. Zaczynając od zmiany obsługi kodowania String'a przez aktualizację naprawdę wielu komponentów część nie ma aktualizacji do obecnej wersji Delphi. Więc obecnie powoli rzeźbię poprawki do komponentów które nie były rozwijane lub szukam zamienników. Na szczęście wiele z nich już od pewnego czasu pozamieniałem w D5 na takie które są nadal rozwijane (Devart, FastReport, JEDI, ImageEN, XDBGrid...) Projekt niestety jest bardzo duży i przeniesienie do XE pociąga za sobą masę nietypowych problemów :)
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads