如何在PowerShell中格式化含数组结构的JSON请求体?
PowerShell中正确声明哈希表以生成有效JSON请求体
你原来的写法里,Sorting和Group的语法不符合PowerShell规则,正确写法需要注意两点:
- PowerShell中声明数组要用
@(),而非JavaScript风格的[] - 数组内的对象要写成PowerShell哈希表
@{},不能直接用{}
正确的哈希表声明
$body = @{ Id = "123" SessionId = "" Sorting = @( @{ field = "EventDateTime" dir = "desc" } ) Group = @() }
转换为有效JSON
使用ConvertTo-Json转换时,必须指定足够的-Depth参数(默认深度为2,嵌套结构需要更高深度),否则嵌套哈希表会被错误序列化:
$jsonBody = $body | ConvertTo-Json -Depth 3
执行后得到的有效JSON如下:
{ "Id": "123", "SessionId": "", "Sorting": [ { "field": "EventDateTime", "dir": "desc" } ], "Group": [] }
内容的提问来源于stack exchange,提问作者Angela
相关产品推荐
相关产品推荐

