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

Powershell如何逐个访问对象成员并生成JSON发起接口请求

PowerShell循环遍历对象成员并逐个生成JSON请求的解决方案

你代码的核心问题是在ForEach-Object循环中仍然调用了整个$l_rules数组转JSON,没有获取当前遍历到的单个对象。修正逻辑如下:

核心修正点

  • 循环内使用PowerShell内置变量$_指代当前迭代的单个对象成员,替换原代码中的$l_rules
  • 不要手动拼接JSON字符串,改用哈希表构造请求体后统一转JSON,避免转义错误
  • 转换JSON时添加-Depth参数,防止默认2层嵌套限制导致内容截断

修正后代码

$l_rules | ForEach-Object {
    Write-Host "Output from rules objects in a cycle"

    # 构造标准请求体结构
    $request_body = @{
        rule = $_
    } | ConvertTo-Json -Depth 10

    Write-Host "Actual json BODY:"
    Write-Host $request_body

    $response_t = Invoke-Restmethod -Uri $api_uri_t -Method POST -Headers $headers -ContentType 'application/json' -UseBasicParsing -Body $request_body
}

额外说明

如果你确实需要手动拼接JSON字符串,要注意去掉外层多余的单引号,Invoke-RestMethod的Body参数直接接收标准JSON格式字符串即可,额外的单引号会被识别为请求内容的一部分,导致接口返回格式错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 00:15:00