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

为何ConvertFrom-Json搭配Select-Object无临时变量时出现异常?

解答

这是PowerShell中ConvertFrom-Json的管道行为差异导致的:

  • 当把ConvertFrom-Json的结果存入临时变量$cde时,$cde是一个数组对象。将$cde传入管道时,PowerShell会自动枚举数组的每个元素,Select-Object -First 1会捕获第一个元素,因此只输出单条数据。
  • 而直接通过管道串联执行时,ConvertFrom-Json会将整个JSON数组作为单个对象发送到管道中。Select-Object -First 1选中的是这个数组对象本身(这是管道内的第一个对象),当PowerShell输出这个数组对象时,会自动展开它的所有元素,所以最终显示了全部条目。

如果要在不使用临时变量的情况下得到预期结果,可以强制枚举ConvertFrom-Json的输出,比如添加ForEach-Object来触发元素枚举:

$json | ConvertFrom-Json | ForEach-Object { $_ } | Select-Object -First 1

另外,PowerShell 7及以上版本中,ConvertFrom-Json的默认行为已调整为自动枚举JSON数组的元素,直接串联管道也能得到预期结果。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 08:10:30