こんばんは!
CloudFlare
現在、デスクトップ用のクライアントをまとめようとしています。私は彼らの API に接続し、POST 要求で JSON の結果を正常に取得しました (その結果は に出力されていますTMemo
)。これらの結果を に解析したいと考えていますTListBox
(例として太字の領域を参照してください)。プロジェクトは で設計されていFiremonkey
ます。
いくつかのサンプル コンテンツを含む、書式設定された応答のレイアウトを次に示します。
{
- 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
}
SuperObject、Paweł Głowacki の JSON Designtime Parser、Tiny-JSON、LKJSON 、および組み込みの DBXJSON など、いくつかの異なるコンポーネントを試しました。ただし、JSON の経験がまったくなく、開始できる最も基本的な例を見つけることができないようです。それらの多くはサンプルデータを示していますが、私が試したものはすべて、おそらく私がそれらを誤解しているため、期待どおりに機能していないようです. コンポーネントは機能すると思いますので、開始するためのガイダンスが必要です。
「配列」には数百、多くの場合数千の結果がありますips
(それが正しくない場合は申し訳ありません。配列として知られていると思いますが、JSONはまったく初めてです)。
私が本当に探しているのは、(解析などに使用するコンポーネントとともに)構築できる非常に基本的なサンプルコードです。
たとえばip
、JSON の結果からすべてを取得し、それぞれを別の項目としてTListBox
(TListBox.add
メソッドを使用して) に入れたい場合、これを達成するにはどうすればよいでしょうか?
私が言うときip
、私は値を意味します (上記のフォーマットされたレイアウトでは、これはxxx.xxx.xxx.xxx
またはになりますyyy.yyy.yyy.yyy
)。
さらに、JSON の結果から IP で「レコード」(?) を検索し、データを Delphi 配列に出力したい場合は、次のようにします。
Result : Array of String = ['"xxx.xxx.xxx.xxx"','"threat"','xx','null','null','"domain-example1"'];
JSONでそれは可能ですか?(これが別の質問であるか、あまりにも無関係であると見なされる場合は、質問全体を閉じるのではなく、自由に編集してください)。
これに最も近いものには、IPだけでなく、他のすべてのデータが別々にありましたTListItem
(つまり、、、、、および他のすべてには独自のアイテムがあり、空でない各アイテムの間にいくつかの空のアイテムがありました)。response
ips
ip
classification
xxx.xxx.xxx.xxx
実行するのは非常に簡単だと思いますが、JSON には非常に多くの情報があるため、この形式に慣れていない人にとっては少し圧倒されます。
よろしく、スコット・プリチャード。