微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

sql – 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_ACAO: 4,NUM_RESU: 5},NUM_ORDE: 3,NUM_ACAO: 8,NUM_RESU: NULL}]"
}

如你所见,它包含两对,其中一个一个数组,在这种情况下有三个对象(对象的数量是动态的),有多个“key:values”(这些不变,总是相同的5个字段),我想插入到sql数据库中,“key”是列,“value”是字段.问题是,我如何单独访问每个对象?

我所做的代码是通过将它放在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不是那种类型.用于执行检查类型转换:

jArray := jPair.JsonValue as TJSONArray;

如果失败,您将收到EInvalidCast异常.

原文地址:https://www.jb51.cc/mssql/84085.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐