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

Delphi中从TRESTResponse的JSON列表提取tenantName到ComboBox的方法

在Delphi中解析JSON并将tenantName填充到ComboBox的实现方法

Delphi自带的System.JSON单元即可完成该需求,无需依赖第三方库,以下是具体实现步骤和代码示例:

实现步骤

  1. 确保项目引用System.JSON单元;
  2. 解析目标JSON字符串为TJSONArray对象;
  3. 遍历数组内的每个TJSONObject,提取tenantName字段值;
  4. 将提取到的名称逐一添加到ComboBox控件中。

完整代码示例

假设你有一个触发加载逻辑的TButton(btnLoadTenants)和目标TComboBox(cbxTenants),可在按钮点击事件中编写如下代码:

uses System.JSON, System.SysUtils;

procedure TForm1.btnLoadTenantsClick(Sender: TObject);
var
  JSONStr: string;
  JSONArray: TJSONArray;
  JSONObj: TJSONObject;
  I: Integer;
  TenantName: string;
begin
  // 此处可替换为你的JSON数据来源(如接口返回、本地文件读取内容)
  JSONStr := '[    {        "id": "e1eede29-f875-4a5d-8470-17f6a29a88b1",        "tenantId": "70784a63-d24b-46a9-a4db-0e70a274b056",        "tenantType": "ORGANISATION",        "tenantName": "Maple Florist"    },    {        "id": "32587c85-a9b3-4306-ac30-b416e8f2c841",        "tenantId": "e0da6937-de07-4a14-adee-37abfac298ce",        "tenantType": "ORGANISATION",        "tenantName": "Adam Demo Company (NZ)"    },    {        "id": "74305bf3-12e0-45e2-8dc8-e3ec73e3b1f9",        "tenantId": "c3d5e782-2153-4cda-bdb4-cec791ceb90d",        "tenantType": "PRACTICEMANAGER",        "tenantName": "Geographe Steelworks"    }]';

  try
    // 清空ComboBox原有内容
    cbxTenants.Clear;

    // 解析JSON字符串为数组对象
    JSONArray := TJSONArray.ParseJSONValue(JSONStr) as TJSONArray;
    if Assigned(JSONArray) then
    try
      // 遍历数组中的每个JSON对象
      for I := 0 to JSONArray.Count - 1 do
      begin
        JSONObj := JSONArray.Items[I] as TJSONObject;
        if Assigned(JSONObj) then
        begin
          // 安全提取tenantName字段,为空时使用默认空字符串
          TenantName := JSONObj.GetValue<string>('tenantName', '');
          if TenantName <> '' then
            cbxTenants.Items.Add(TenantName);
        end;
      end;
    finally
      JSONArray.Free; // 释放JSON对象,避免内存泄漏
    end;
  except
    on E: Exception do
      ShowMessage('JSON解析出错:' + E.Message);
  end;
end;

关键说明

  • TJSONArray.ParseJSONValue用于将字符串解析为JSON对象,需做好类型转换和非空判断;
  • GetValue<string>方法可安全提取字符串字段,第二个参数为字段不存在时的默认值;
  • 必须手动释放创建的JSON对象,防止内存泄漏;
  • 添加异常捕获可避免程序因JSON格式错误直接崩溃。

内容的提问来源于stack exchange,提问作者Paul Coshott

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 04:35:30