如何从零构建匹配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
相关产品推荐
相关产品推荐

