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

PowerShell自定义对象转JSON时嵌套数组属性被序列化为字符串问题

问题根因

PowerShell 内置的 ConvertTo-Json cmdlet 默认的对象序列化深度为2层,你构造的$newAccountData对象嵌套层级超过了默认阈值:

  • 第1层:$newAccountData本身的属性(path、manager、employee等)
  • 第2层:manager对象的属性
  • 第3层:manager.CreateOnIDs 数组(超出默认深度)

超出深度限制的对象会被PowerShell直接调用ToString()方法输出,因此数组被转为了空格拼接的字符串。你单独序列化$manager时没有外层嵌套,深度足够,所以输出符合预期。

解决方案

调用ConvertTo-Json时手动指定-Depth参数,设置足够覆盖你对象嵌套层级的深度即可,示例代码如下:

# 序列化时指定深度为3或更高,根据实际嵌套层级调整
$newAccountData | ConvertTo-Json -Depth 3

注意事项

  • 如果你的对象嵌套层级更深,可以适当调大Depth的取值,PowerShell 5.1及以上版本支持最大深度为100,无特殊场景设置为10即可覆盖绝大多数需求
  • 避免设置过高的不必要深度,防止出现循环引用导致序列化卡死

内容的提问来源于stack exchange,提问作者Patryk Gołębiowski

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 15:15:00