【问题标题】:How to get particular values from JSON using powershell如何使用 powershell 从 JSON 中获取特定值
【发布时间】:2021-12-20 15:49:21
【问题描述】:

为了我的测试报告目的,我必须从 JSON 文件中获取值。 谁能帮我从下面的 JSON 数据中获取passesfailure 的值。

    {
  "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)"

结果:

$json= Get-Content -Raw -Path 'C:\report.json' | ConvertFrom-Json
write-host "passes : $($json.passes)"
write-host "failures : $($json.failures)"
passes : 
failures :

编辑: 我通过添加以下代码得到了解决方案

$json= Get-Content -Raw -Path 'C:\report.json' | ConvertFrom-Json
write-host "passes : $($json.stats.passes)"
write-host "failures : $($json.stats.failures)"

【问题讨论】:

  • 您显示的 json 无效(大括号后的最后一个逗号不应该存在)或者这只是文件的一部分?如果是这样,请向我们展示一个可以看到 json 数据完整结构的净化版本

标签: json powershell


【解决方案1】:

试试这个

$json= Get-Content -Raw -Path <jsonFile>.json | ConvertFrom-Json
//or
$json = $response | ConvertFrom-Json //if you have it from url


write-host "passes : $($json.passes)"
write-host "failures : $($json.failures)"

【讨论】:

    【解决方案2】:

    我已经通过添加以下代码得到了解决方案

    $json= Get-Content -Raw -Path 'C:\report.json' | ConvertFrom-Json
    write-host "passes : $($json.stats.passes)"
    write-host "failures : $($json.stats.failures)"
    

    结果:

    passes : 14
    failures : 0
    

    【讨论】:

      猜你喜欢
      • 2020-08-10
      • 2020-01-28
      • 1970-01-01
      • 2017-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-21
      • 1970-01-01
      相关资源
      最近更新 更多