如何在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
相关产品推荐
相关产品推荐

