Parsen von JSON in TListBox

Guten Abend Jungs!

Ich bin gerade dabei, zusammen eine CloudFlare - client für den desktop. Ich habe eine Verbindung mit Ihrem API und erfolgreich abgerufenen JSON-Ergebnisse mit einer POST-Anfrage (von denen die Ergebnisse ausgegeben wurden, in eine TMemo). Ich bin jetzt zu wollen, zu analysieren, diese Ergebnisse in eine TListBox (siehe Fett gedruckten Bereich, zum Beispiel). Das Projekt wird entwickelt in Firemonkey.

Hier der formatierte layout der Reaktion mit einigen Beispiel-Inhalten;

{
 - response: {
   |- ips: [
      |- {
         ip: "xxx.xxx.xxx.xxx",
         classification: "threat",
         hits: xx,
         latitude: null,
         longitude: null,
         zone_name: "domain-example1"
         },
       - {
         ip: "yyy.yyy.yyy.yyy",
         classification: "robot",
         hits: yy,
         latitude: null,
         longitude: null,
         zone_name: "domain-example2"
         }
       ]
   }
  result : "success",
  msg: null
}

Ich habe versucht, mehrere verschiedene Komponenten - SuperObject, Paweł Głowacki ist JSON Entwurfszeit-Parser, Tiny-JSON, LKJSON und die eingebauten DBXJSON. Ich habe allerdings keine Erfahrung mit JSON und ich kann nicht scheinen zu finden, die einfachsten Beispiele, die ich bekommen kann begann. Viele von Ihnen zeigen Beispiel-Daten, aber alle die, die ich ausprobiert habe scheinen nicht zu funktionieren wie ich es erwarten würde, wahrscheinlich, weil ich Missverständnisse Ihnen. Ich würde davon ausgehen, die Komponenten arbeiten, so brauche ich Anleitung auf erste Schritte.

Gibt es Hunderte, oft Tausende von Ergebnissen in der ips "array" (ich entschuldige mich, wenn das nicht korrekt ist, würde ich davon ausgehen, es ist bekannt als ein array aber wieder, ich bin komplett neu in JSON).

Was ich wirklich Suche, ist eine Art von extrem basic-Beispielcode, die ich bauen kann, aus der (zusammen mit, welche Komponente Sie verwendet für die Analyse und so).

Zum Beispiel, wenn ich wollte, greifen jeden ip aus der JSON-Ergebnisse, und legen Sie jedes als ein separates Element in einem TListBox (mit TListBox.add - Methode), wie würde ich mich über das erreichen?

Wenn ich sage ip meine ich den Wert (in der formatierten layout vor, das wäre xxx.xxx.xxx.xxx oder yyy.yyy.yyy.yyy).

Außerdem, wenn ich finden wollte, einen "Datensatz" (?) indem es die IP von der die JSON-Ergebnisse und die Ausgabe der Daten auf ein delphi-array - z.B.;

Result : Array of String = ['"xxx.xxx.xxx.xxx"','"threat"','xx','null','null','"domain-example1"'];

geht das mit JSON? (Wenn dies gesehen wird, als eine separate Frage oder auch nichts zu tun haben, bitte fühlen Sie sich frei, um es zu Bearbeiten, anstatt die Frage schließen als ganzes).

Der nächste, den ich bekam zu dieser hatte nicht nur die ip, aber jedes andere Stück von Daten in einem separaten TListItem (d.h. response, ips, ip, classification, xxx.xxx.xxx.xxx und alles andere hatte, ist es eigener Artikel, zusammen mit mehreren leeren Elementen in zwischen jedes nicht-leere Element).

Ich bin mir sicher, dass es ist extrem einfach zu tun, aber es gibt so viel Informationen über JSON dass es ein wenig überwältigend für Leute die neu sind im format.

Beste Grüße,
Scott Pritchard.

Schreibe einen Kommentar