大家晚上好。
我目前正在开发我的产品WinFlare的跨平台兼容版本。我面临的问题是SuperObject仍然不能与 Firemonkey 跨平台兼容。无论如何,我在产品的原始版本中使用了它,但现在我想创建一个跨平台版本,而不是仅限于 Windows 的版本,我发现它很麻烦。
DBXJSON
是我经过大量研究后能够找到的唯一跨平台解决方案,但事实证明,尝试和处理这令人沮丧。我为它找到的大多数示例要么不适用于我的情况,要么它们太复杂而无法从中获得任何有用的信息。有很多讨论,但我只是在努力掌握 SuperObject 如此简单的任务。今晚的大部分时间我都在努力寻找可以构建的东西,但我所尝试的一切都让我回到了原点。
理想情况下,我想修复 SuperObject,但我缺乏深入了解使其与 OS X 跨平台兼容的知识(并为移动工作室做好准备)。我欢迎对此提出任何建议,但我想没有人有时间完成如此艰巨的任务,看起来 DBXJSON 是我唯一的选择。
我正在处理的 JSON 布局仍然相同;
{
response: {
ips: [
{
ip: "xxx.xxx.xxx.xxx",
classification: "threat",
hits: xx,
latitude: xx,
longitude: xx,
zone_name: "domain-example1"
},
{
ip: "yyy.yyy.yyy.yyy",
classification: "robot",
hits: yy,
latitude: xx,
longitude: xx,
zone_name: "domain-example2"
}
]
}
result : "success",
msg: null
}
ips
数组中可能有数百个结果。假设我想解析数组中的所有项目并提取每个latitude
值。让我们再假设一下,我打算将它们输出到一个数组中。这是我想使用的那种代码模板;
procedure ParseJsonArray_Latitude(SInput : String);
var
i : Integer;
JsonArray : TJsonArray;
Begin
// SInput is the retrieved JSON in string format
{ Extract Objects from array }
for i := 0 to JsonArray.Size-1 do
begin
Array_Latitude[i] := JsonArray.Item[i].ToString;
end;
end;
本质上,在它说的地方{ Extract Objects from array }
,我想要使用DBXJSON的最基本的解决方案来解决我的问题。显然,我在上面的模板中显示的相关调用可能不正确——它们只是为了提供帮助。JsonArray