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

Delphi 10.3环境下如何将JSON数组读取并加载到Listbox中

Delphi 10.3 读取JSON数组到列表的实现方法

Delphi 10.3 自带System.JSON原生单元,无需引入第三方库即可完成JSON数组的解析工作,具体实现步骤如下:

前置依赖

在代码单元的uses段引入以下两个系统单元:

  • System.JSON:负责JSON内容的解析处理
  • System.Generics.Collections:提供泛型列表TList<Integer>用来存储订单ID

核心实现代码

uses
  System.SysUtils, System.JSON, System.Generics.Collections;

procedure LoadOrderIDsToList(const JSONResponseStr: string; AOrderIDList: TList<Integer>);
var
  LJSONArray: TJSONArray;
  LJSONValue: TJSONValue;
  LOrderID: Integer;
begin
  // 入参校验
  if not Assigned(AOrderIDList) then Exit;
  AOrderIDList.Clear;

  // 解析API返回的JSON字符串为数组对象
  LJSONArray := TJSONObject.ParseJSONValue(JSONResponseStr) as TJSONArray;
  try
    if not Assigned(LJSONArray) then Exit;

    // 遍历JSON数组所有元素,转换为整数后存入列表
    for LJSONValue in LJSONArray do
    begin
      if TryStrToInt(LJSONValue.Value, LOrderID) then
      begin
        AOrderIDList.Add(LOrderID);
      end;
    end;
  finally
    *必须手动释放JSON对象资源,避免内存泄漏*
    LJSONArray.Free;
  end;
end;

调用示例

procedure TForm1.Button1Click(Sender: TObject);
var
  LOrderIDList: TList<Integer>;
  i: Integer;
  // 示例为API返回的JSON数组字符串,实际使用时替换为你的接口返回值
  const API_RETURN_JSON = '[2258,2259,2260]';
begin
  LOrderIDList := TList<Integer>.Create;
  try
    // 调用解析方法
    LoadOrderIDsToList(API_RETURN_JSON, LOrderIDList);

    // 遍历列表做后续业务处理
    for i in LOrderIDList do
    begin
      // 此处替换为你的业务逻辑,示例为弹窗输出订单ID
      ShowMessage('当前订单ID:' + IntToStr(i));
    end;
  finally
    // 释放列表资源
    LOrderIDList.Free;
  end;
end;

注意事项

  • 如果接口返回的JSON数组元素是带双引号的字符串格式(例如["2258","2259"]),上述转换逻辑可直接兼容,无需修改
  • 若JSON数组存在null值,转换逻辑会自动跳过无效值,不会触发报错
  • 以上逻辑仅适用纯数值/纯数值字符串组成的一维JSON数组,复杂结构JSON需要对应调整解析逻辑

内容的提问来源于stack exchange,提问作者nas ben

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 06:57:03