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

如何让单元素数组在JSON中生成方括号(PowerShell场景)

问题

我尝试用以下PowerShell代码创建JSON数组:

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

$body = $bodyObject | ConvertTo-Json

但生成的$body没有方括号:

{
    "Username":  "email0@email.com"
}

添加第二个元素后就能正常生成带方括号的JSON数组:

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

$body = $bodyObject | ConvertTo-Json
<# Output:
[
    {
        "Username":  "email0@email.com"
    },
    {
        "Username":  "email1@email.com"
    }
]
#>

请问如何让单元素数组生成包含方括号的JSON?

解决方案

PowerShell的ConvertTo-Json默认会把单元素数组“折叠”成单个对象,要强制生成数组格式,有两种实用方法:

方法1:使用-AsArray参数(PowerShell 6+支持)

直接在ConvertTo-Json命令后添加-AsArray参数,强制输出为数组结构:

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

$body = $bodyObject | ConvertTo-Json -AsArray

输出结果:

[
    {
        "Username":  "email0@email.com"
    }
]

方法2:手动嵌套数组(兼容所有PowerShell版本)

如果使用PowerShell 5.1及更早版本,没有-AsArray参数,可以将目标对象嵌套进另一个数组后再转换,同时注意设置-Depth参数避免嵌套结构被截断:

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

$body = @($bodyObject) | ConvertTo-Json -Depth 2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 01:17:21