如何使用PowerShell从JSON文件中提取passes、failures指定字段值
PowerShell读取JSON测试报告嵌套字段问题解决
问题描述
我需要从JSON测试报告文件中提取passes、failures字段的值,示例JSON数据如下:
{ "stats": { "suites": 2, "tests": 4, "passes": 3, "pending": 0, "failures": 0, "start": "2021-11-05T15:58:26.817Z", "end": "2021-11-05T15:59:26.701Z", "duration": 55162, "testsRegistered": 4, "passPercent": 75, "pendingPercent": 0, "other": 0, "hasOther": false, "skipped": 1, "hasSkipped": true } }
错误尝试
最初编写了以下代码,运行后两个字段输出均为空:
$json= Get-Content -Raw -Path 'C:\report.json' | ConvertFrom-Json write-host "passes : $($json.passes)" write-host "failures : $($json.failures)"
运行结果:
passes : failures :
错误原因
passes和failures不是JSON根级节点的属性,而是嵌套在stats节点下的子属性,直接从根节点访问自然无法获取到对应值。
正确实现
$json= Get-Content -Raw -Path 'C:\report.json' | ConvertFrom-Json write-host "passes : $($json.stats.passes)" write-host "failures : $($json.stats.failures)"
内容的提问来源于stack exchange,提问作者BugBee
相关产品推荐
相关产品推荐

