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

PowerShell生成嵌套JSON结构不符合预期问题求助

PowerShell 生成API请求JSON异常问题修复

错误原因

  • 重复调用ConvertTo-Json:你先把哈希表转成了JSON字符串赋值给$body,又对这个字符串执行了一次JSON转换,相当于把JSON文本当成普通字符串序列化,才会出现大量转义字符、artifacts被转为字符串的问题。
  • artifacts字段定义错误:一是字段名前多加了$符号,变成了用$artifacts变量的值作为键名;二是官方要求artifacts是对象数组,你只定义了单个对象。
  • 未指定JSON序列化深度:PowerShell的ConvertTo-Json默认序列化深度为2,嵌套层级更多的结构会被截断,需要手动指定-Depth参数适配嵌套结构。

正确代码示例

# 先构造artifacts数组,可按需添加多个对象
$artifacts = @(
    [PSCustomObject]@{
        dataType = "ip"
        data = "127.0.0.1"
        message = "localhost"
    }
    # 可继续添加其他artifact对象
    <#
    [PSCustomObject]@{
        dataType = "domain"
        data = "thehive-project.org"
        tags = @("home", "TheHive")
    }
    #>
)

# 构造请求体哈希表
$body = @{
    title = $title
    description = $Alert_Description
    type = "external"
    source = $Source
    sourceRef = $SourceRef
    severity = $Severity
    tlp = $tlp
    artifacts = $artifacts
    caseTemplate = "external-alert"
}

# 仅执行一次JSON转换,指定足够的序列化深度
$JsonBody = $body | ConvertTo-Json -Depth 10

验证说明

生成后可直接输出$JsonBody检查结构,确认artifacts是数组格式、无多余转义字符后即可用于API调用。

内容的提问来源于stack exchange,提问作者Stefan Röthlisberger

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 04:00:04