Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi Mehrere Json Daten parsen, wie geht das? (https://www.delphipraxis.net/190392-mehrere-json-daten-parsen-wie-geht-das.html)

BBoy 29. Sep 2016 14:57

Mehrere Json Daten parsen, wie geht das?
 
Hatte bisher nie mit json zu tun. Habe mir nun x-superobject-master heruntergeladen und mich daran versucht.

Im result_string sind die json daten.
Code:
 
  X := SO(result_string);
  memo1.Lines.Add( X['"id"'].AsString );
  memo1.Lines.Add( X['"value"'].AsString );
  memo1.Lines.Add( X['"latitude"'].AsString );
  memo1.Lines.Add( X['"longitude"'].AsString );
  memo1.Lines.Add( X['"timestamp"'].AsString );
Das funktioniert. Aber da sind mehrere Datensätze vorhanden, wie lese ich die aus?

BBoy 30. Sep 2016 10:07

AW: Mehrere Json Daten parsen, wie geht das?
 
Das muss man erst mal verstehen :) Hier meine Lösung:

Code:
var
  X, Obj: ISuperObject;
  AMember, OMember: IMember;
begin
  X := TSuperObject.Create(result_string);
  for AMember in X.A['result'] do begin
    for OMember in AMember.AsObject do begin
       Memo1.Lines.Add(OMember.Name + ' = ' + OMember.ToString);
      if omember.Name = 'id' then
        id := omember.asString;
      if omember.Name = 'latitude' then
        lat := omember.asString;
      if omember.Name = 'longitude' then
        lon := omember.asString;
      if omember.Name = 'timestamp' then
        tstamp := omember.asString;
    end;
  end;
end;
Vielleicht kann mir diese Zeile jemand erklären:
for AMember in X.A['result']
Das A verstehe ich überhaupt nicht :?

Mavarik 30. Sep 2016 11:21

AW: Mehrere Json Daten parsen, wie geht das?
 
Zitat:

Zitat von BBoy (Beitrag 1349305)
Das muss man erst mal verstehen :) Hier meine Lösung:
Das A verstehe ich überhaupt nicht :?

Array!

BBoy 30. Sep 2016 12:36

AW: Mehrere Json Daten parsen, wie geht das?
 
Dann bedeutet die if Abfrage also:
Solange im Array result daten sind tue folgendes...

Dennoch ist das ganze für mich etwas undurchsichtig. Ziemlich abstrakt für mich... Damit muss ich mich mal gesondert auseinandersetzen :)

Danke!

greenmile 18. Jan 2017 09:42

AW: Mehrere Json Daten parsen, wie geht das?
 
Zitat:

Zitat von BBoy (Beitrag 1349305)
AMember, OMember: IMember;

Wollte das gerade auf die Schnelle mal testen. Aber wer oder was ist IMember?

BrightAngel 18. Jan 2017 10:36

AW: Mehrere Json Daten parsen, wie geht das?
 
Zitat:

Zitat von greenmile (Beitrag 1359149)
Zitat:

Zitat von BBoy (Beitrag 1349305)
AMember, OMember: IMember;

Wollte das gerade auf die Schnelle mal testen. Aber wer oder was ist IMember?

Eine einzelne "key-value-Einheit" innerhalb des JsonObjects

greenmile 18. Jan 2017 10:53

AW: Mehrere Json Daten parsen, wie geht das?
 
OK, danke. Ist XSuperObject, nicht nur SuperObject, hatte ich nicht gesehen.


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