如何强制具有一个元素的数组在json中生成方括号

Bac*_*ave 5 arrays powershell json

我正在尝试使用以下方法创建 JSON 数组:

$bodyObject = @(
    @{    
        'Username' = 'email0@email.com'        
    }
)

$body = $bodyObject | ConvertTo-Json
Run Code Online (Sandbox Code Playgroud)

但该$body对象不包含方括号:

{
    "Username":  "email0@email.com"
}
Run Code Online (Sandbox Code Playgroud)

如果我向数组添加另一个元素,代码将完美运行:

$bodyObject = @(
    @{    
        'Username' = 'email0@email.com'        
    },
    @{    
        'Username' = 'email1@email.com'        
    }
)

$body = $bodyObject | ConvertTo-Json
<# Output:
[
    {
        "Username":  "email0@email.com"
    },
    {
        "Username":  "email1@email.com"
    }
]
#>
Run Code Online (Sandbox Code Playgroud)

如何获取一个元素数组来生成包含方括号的 JSON?

San*_*zon 4

最简单的方法是按位置传递数组,而不是通过管道:

$body = ConvertTo-Json $bodyObject
Run Code Online (Sandbox Code Playgroud)

在第一个示例中看不到数组的原因是管道枚举了.