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

如何将Powershell输入的有序键值对转换为Power BI REST API所需的请求体数组?

实现方案

直接通过PowerShell内置的字符串拆分、对象构造和JSON序列化能力实现,比手动拼接JSON字符串更稳定,能自动处理特殊字符转义问题。

完整实现步骤

  • 第一步:接收用户输入的简化格式参数字符串
# 输入格式示例:ServerName:192.168.1.100;DBName:SalesDB;UserName:admin
$inputStr = Read-Host "请输入要更新的参数,格式为 参数名1:新值1;参数名2:新值2"
  • 第二步:解析输入字符串为参数数组
$updateDetails = @()
# 按分号拆分出每一组参数键值对,同时过滤空项
$paramPairs = $inputStr -split ';' | Where-Object { $_ -match '\S' }
foreach ($pair in $paramPairs) {
    # 按冒号最多拆2段,避免参数值本身包含冒号时拆分出错
    $name,$value = $pair -split ':',2 | ForEach-Object { $_.Trim() }
    $updateDetails += [PSCustomObject]@{
        name = $name
        newValue = $value
    }
}
  • 第三步:自动生成符合要求的请求体
# 构造完整请求体对象后序列化为JSON,Depth参数避免层级太深被截断
$bodyObj = [PSCustomObject]@{
    updateDetails = $updateDetails
}
$body = $bodyObj | ConvertTo-Json -Depth 3
  • 第四步:调用Power BI REST接口
Invoke-PowerBIRestMethod -Url $url -Method Post -Body $body

注意事项

  • 如果参数值本身包含分号,可以自行调整分隔符(比如把参数对分隔符换成|,对应修改-split ';'为-split '\|'即可)
  • 不需要手动处理JSON特殊字符转义,ConvertTo-Json会自动处理值里的引号、换行等特殊内容
  • 输入的参数名需要和Power BI报表里的参数名完全一致,包括大小写匹配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 06:06:08