首页 > 解决方案 > 如何将powershell json响应转换为csv

问题描述

这是我的 PowerShell,它正在调用 API 并返回 JSON 响应。

$output = Get-SurveyParticipents `
 -url "https://orxsurveys.limequery.com/admin/remotecontrol" `
 -session $sessionKey `
 -id "519965" `
 -start "0" `
 -limit "2" `
 -unused $False `
 -attributes ["completed", "usesleft"]

($output | Export-Csv -NoTypeInformation ./testtt.csv)

写入主机 $output 产生:

@{tid=6; token=35ddmyQTlNpzLat; participant_info=} @{tid=7; token=nQ_S838LjYT4mR6; participant_info=}

Export-CSV 产生: 在此处输入图像描述

这是我需要从 export-csv 生成的: 在此处输入图像描述

谁能指出我正确的方向,将“participant_info”转换为有效的 json 以用于 CSV 导出?- 你可以告诉我,除了将它用于 SharePoint 之外,我对 PowerShell 几乎没有经验。谢谢!

标签: jsonpowershellapicsv

解决方案


您的目标是输出具有一组自定义属性的对象(因为它与原始对象不同)。这可以通过Select-Object和计算的属性来完成。

$output | 
    Select-Object tid,token,
        @{n='Firstname';e={$_.participant_info.Firstname}},
        @{n='Lastname';e={$_.participant_info.Lastname}},
        @{n='Email';e={$_.participant_info.Email}} |
            Export-CSV testtt.csv -NoType

推荐阅读