Delphi:访问JSON数组中的JSON对象
我有一个JSON对象,让我们将其命名为如下所示的jObject:
{ "id": 0,
"data": "[{DAT_INCL: \"08/03/2012 10:07:08\", NUM_ORDE: 1, NUM_ATND: 1, NUM_ACAO: 2, NUM_RESU: 3},
{DAT_INCL: \"08/03/2012 10:07:09\", NUM_ORDE: 2, NUM_ATND: 1, NUM_ACAO: 4, NUM_RESU: 5},
{DAT_INCL: \"08/03/2012 10:07:09\", NUM_ORDE: 3, NUM_ATND: 1, NUM_ACAO: 8, NUM_RESU: NULL}]"
}
如您所见,它包含两对,其中一个是具有三个对象的数组(在这种情况下,对象的数量是动态的),并且具有多个“键:值”(这些值没有变化,始终是相同的5个字段)
),我想将其插入到SQL数据库中,“键”为列,“值”为字段。问题是,如何分别访问每个对象?
在代码方面,我所做的是通过将包含此数组的对放入jPair中来提取它。
jPair := OriginalObject.Get(1);
然后捕获数组
jArray:= TJSONArray(jPair.JsonValue);
(此外,作为奖励,当我评估jArray.Size时,结果为6226004。是什么?)
回答:
如果您有来自DBXJSON的数组,则为TJSONArray
。调用其Get
方法以获取数组的元素。
var Value: TJSONValue;
Value := jArray.Get(0);
您还可以for
循环遍历整个数组:
for Value in jArray do
但是,如果您检查该Size
属性并得到6226004而不是3,则表明这里还有其他问题。我的猜测是您认为不是一种TJSONArray
真正的类型。用as
做检查类型转换:
jArray := jPair.JsonValue as TJSONArray;
EInvalidCast
如果失败,您将得到一个例外。
以上是 Delphi:访问JSON数组中的JSON对象 的全部内容, 来源链接: utcz.com/qa/429089.html