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

如何在UiPath中将API返回的JSON报表响应转换为Data Table?

在UiPath中将Salesforce报告API响应转换为DataTable的方法

步骤1:解析JSON响应

使用UiPath的Deserialize JSON活动,将API返回的JSON字符串转换为JObject类型变量(例如命名为jsonResponse)。该活动会自动解析JSON层级结构,便于后续数据提取。

步骤2:定位核心数据区域

从JSON结构中提取两个关键部分:

  • 表头:从jsonResponse["reportExtendedMetadata"]["detailColumnInfo"]获取列的显示标签(如Account Name),作为DataTable的列名。
  • 数据行:从jsonResponse["factMap"]["T!T"]["rows"]获取业务数据集合,每个rows元素的dataCells数组对应一行具体数据。

步骤3:创建空DataTable并定义列

可以通过Build Data Table活动手动配置列,也用VB代码动态生成(适配结构变化更灵活):

' 初始化空DataTable
Dim accountDt As New DataTable()
' 遍历detailColumnInfo,添加对应列
For Each colEntry In jsonResponse("reportExtendedMetadata")("detailColumnInfo")
    accountDt.Columns.Add(colEntry.Value("label").ToString())
Next

步骤4:填充数据到DataTable

遍历所有数据行,将dataCells中的值(或显示标签)填充到DataTable:

' 遍历factMap中的数据行集合
For Each rowEntry In jsonResponse("factMap")("T!T")("rows")
    Dim newRow As DataRow = accountDt.NewRow()
    ' 填充当前行的每个单元格
    For i As Integer = 0 To rowEntry("dataCells").Count - 1
        ' 若需要存储原始业务值而非显示标签,替换为rowEntry("dataCells")(i)("value").ToString()
        newRow(i) = rowEntry("dataCells")(i)("label").ToString()
    Next
    accountDt.Rows.Add(newRow)
Next

步骤5:数据类型转换(可选)

根据detailColumnInfo中的dataType定义,将列转换为对应数据类型(例如日期列):

' 将"Last Modified Date"列设置为DateTime类型
accountDt.Columns("Last Modified Date").DataType = GetType(DateTime)
' 批量转换单元格值格式
For Each row As DataRow In accountDt.Rows
    row("Last Modified Date") = DateTime.ParseExact(row("Last Modified Date").ToString(), "dd.MM.yyyy", System.Globalization.CultureInfo.InvariantCulture)
Next

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 01:30:51