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

如何从零构建匹配API请求JSON结构的空PSCustomObject骨架?

构建PSCustomObject作为API例外请求体的方案

直接通过嵌套[PSCustomObject]和数组来构建符合API结构的空对象,后续可直接填充属性,无需依赖现有JSON导入。以下是聚焦文件名与文件哈希例外的实现代码:

1. 初始化空结构对象

# 创建顶层请求体对象,包含操作类型、策略ID和例外集合
$apiRequest = [PSCustomObject]@{
    policyId = $null  # 后续填充目标策略ID
    action = ""       # 后续设置为"add"或"remove"
    exceptions = [PSCustomObject]@{
        fileNames = @()  # 空数组,用于存储文件名例外
        fileHashes = @() # 空数组,用于存储文件哈希例外
    }
}

2. 填充例外数据

# 添加文件名例外
$apiRequest.exceptions.fileNames += "app.exe"
$apiRequest.exceptions.fileNames += "lib.dll"

# 添加文件哈希例外(示例为SHA256/MD5类型,可根据API要求调整结构)
$apiRequest.exceptions.fileHashes += [PSCustomObject]@{
    hashValue = "f47ac10b58cc4372a567e8c1789f0ab1"
    hashType = "SHA256"
}
$apiRequest.exceptions.fileHashes += [PSCustomObject]@{
    hashValue = "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6"
    hashType = "MD5"
}

# 填充策略ID和操作类型
$apiRequest.policyId = "POL-SEC-001"
$apiRequest.action = "add"

3. 转换为JSON请求体

# 指定Depth参数确保嵌套结构完整序列化
$jsonBody = $apiRequest | ConvertTo-Json -Depth 3

关键说明

  • Format-Custom仅用于格式化对象的输出展示,无法构建或修改对象结构,因此之前的尝试无效。
  • 如果API要求更复杂的嵌套结构,只需在[PSCustomObject]中继续嵌套对应的属性或数组即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 09:50:42