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

PowerShell解析Zendesk JSON:按字段值获取对应数据的问题

正确的PowerShell实现方式

核心思路

先抓住两个关键处理要点:

  • 优先用via.source.from里的姓名、邮箱数据,为空时再从指定ID的自定义字段提取
  • 处理自定义字段时精准匹配ID,避免返回全量字段;同时做多层空值判断,杜绝参数验证异常

完整代码示例

# 1. 从Zendesk API获取工单数据(假设已完成认证和请求,$tickets是返回的工单数组)
# $tickets = Invoke-RestMethod -Uri "https://yourdomain.zendesk.com/api/v2/tickets.json" -Headers $authHeaders

# 2. 替换成你实际的自定义字段固定ID
$customNameFieldId = "123456" # 存储用户姓名的字段ID
$customEmailFieldId = "789012" # 存储用户邮箱的字段ID

# 3. 遍历处理每个工单
foreach ($ticket in $tickets.tickets) {
    # 初始化用户信息变量
    $userName = $null
    $userEmail = $null

    # 优先读取via.source.from中的数据
    if (-not [string]::IsNullOrWhiteSpace($ticket.via.source.from.name)) {
        $userName = $ticket.via.source.from.name
    }
    if (-not [string]::IsNullOrWhiteSpace($ticket.via.source.from.address)) {
        $userEmail = $ticket.via.source.from.address
    }

    # 姓名为空时,从自定义字段提取
    if ([string]::IsNullOrWhiteSpace($userName)) {
        $nameField = $ticket.custom_fields | Where-Object { $_.id -eq $customNameFieldId }
        if ($nameField -and -not [string]::IsNullOrWhiteSpace($nameField.value)) {
            $userName = $nameField.value
        }
    }

    # 邮箱为空时,从自定义字段提取
    if ([string]::IsNullOrWhiteSpace($userEmail)) {
        $emailField = $ticket.custom_fields | Where-Object { $_.id -eq $customEmailFieldId }
        if ($emailField -and -not [string]::IsNullOrWhiteSpace($emailField.value)) {
            $userEmail = $emailField.value
        }
    }

    # 输出处理后的结果(也可存入集合用于后续导出)
    [PSCustomObject]@{
        TicketId   = $ticket.id
        UserName   = $userName
        UserEmail  = $userEmail
        Subject    = $ticket.subject
    }
}

关键细节解释

  • 避免返回全量自定义字段:通过Where-Object精准匹配字段ID,只筛选目标字段,而非直接返回整个custom_fields数组
  • 杜绝参数验证异常:每次取值前用[string]::IsNullOrWhiteSpace()判断空值,同时检查筛选后的字段是否存在($nameField -and ...),避免引用空对象的属性
  • 明确优先级逻辑:严格遵循先取via数据、为空再 fallback 到自定义字段的需求
  • 结构化输出:用PSCustomObject封装结果,方便后续导出CSV或进一步处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 23:15:14