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

如何在PowerShell中提取输出的首个JSON对象集合

提取第一个独立JSON对象的两种方法

方法一:利用ConvertFrom-Json的自动解析特性

PowerShell的ConvertFrom-Json可以自动将包含多个独立顶级JSON对象的输入解析为对象数组,直接取数组第一个元素再转回JSON即可:

# 假设$output是你的脚本输出内容(包含多个独立JSON)
$allJsonObjects = $output | ConvertFrom-Json
$firstJsonObject = $allJsonObjects[0]
# 将第一个对象转回JSON字符串输出
$firstJsonObject | ConvertTo-Json -Depth 10

这个方法简洁高效,适用于PowerShell 3.0及以上版本,大部分场景都能满足需求。

方法二:手动追踪大括号平衡(兼容特殊场景)

如果遇到ConvertFrom-Json无法正确解析的特殊情况(比如JSON格式异常但仍符合大括号结构),可以通过逐字符追踪大括号的平衡状态来提取第一个完整JSON:

$jsonText = $output -join "`n"
$braceCount = 0
$firstJsonChars = @()

foreach ($char in $jsonText.ToCharArray()) {
    $firstJsonChars += $char
    if ($char -eq '{') {
        $braceCount++
    }
    elseif ($char -eq '}') {
        $braceCount--
        if ($braceCount -eq 0) {
            break
        }
    }
}

$firstJsonString = -join $firstJsonChars
# 可选:将字符串转为对象
$firstJsonObject = $firstJsonString | ConvertFrom-Json
# 输出JSON字符串
$firstJsonString

这个方法不依赖JSON解析器,完全通过结构特征提取,适配行数不固定的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 14:10:28