晚上好,伙计们!
我目前正在尝试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
or yyy.yyy.yyy.yyy
)。
此外,如果我想通过它的 IP 从 JSON 结果中找到“记录”(?)并将数据输出到 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 的信息太多了,对于刚接触这种格式的人来说有点不知所措。
最好的问候,斯科特·普里查德。