You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Delphi中使用JsonDataObjects遍历JSON数组中的元素?

遍历实现代码

你收到的JSON中客户信息数组存放在根对象returnValue数组的第2个元素(索引为1)位置,使用JsonDataObjects库遍历的代码如下:

uses
  JsonDataObjects;

procedure ProcessApiResponse(const JsonStr: string);
var
  RootObj: TJsonObject;
  ReturnValueArr: TJsonArray;
  CustomerArr: TJsonArray;
  CustomerItem: TJsonObject;
  i: Integer;
begin
  RootObj := TJsonObject.Parse(JsonStr) as TJsonObject;
  try
    // 提取returnValue数组
    ReturnValueArr := RootObj.A['returnValue'];
    // returnValue数组索引1的位置存储客户信息数组
    CustomerArr := ReturnValueArr.A[1];
    
    // 遍历所有客户元素做业务处理
    for i := 0 to CustomerArr.Count - 1 do
    begin
      CustomerItem := CustomerArr.O[i];
      // 以下为示例字段读取,可替换为自身业务逻辑
      WriteLn('更新日期: ', CustomerItem.I['ajourDate']);
      WriteLn('客户编号: ', CustomerItem.I['customernr']);
      WriteLn('客户名称: ', CustomerItem.S['customernavn']);
      WriteLn('------------------------');
    end;
  finally
    RootObj.Free;
  end;
end;

兼容说明

  • JsonDataObjects对类型取值做了封装,I对应整数字段、S对应字符串字段、A对应数组字段、O对应对象字段,无需手动做类型转换,可直接在Delphi 2009、10.4版本下运行
  • 若需要兼容异常格式的返回数据,可使用CustomerItem.Get('字段名', 默认值)的写法做容错处理,避免空值报错

内容的提问来源于stack exchange,提问作者Per Karred Larsen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 04:39:04