首页 > 解决方案 > 通过json中的数组元素名称获取值

问题描述

我不确定如何正确命名这些元素,只是显示它会更容易。我有以下 JSON:

{
  "DEV": [
    {
      "GitEmail": "asd@asd.com"
    }
  ],
  "TEST": [
    {
      "GitEmail": "asd1@asd.com"
    }
  ],
  "PROD": [
    {
      "GitEmail": "asd2@asd.com"
    }
  ]
}  

我想通过提供它的电子邮件来获得“DEV”。如何在PowerShell中实现它?

标签: jsonpowershellpowershell-4.0

解决方案


像下面这样的东西可以帮助 -

PS> $json = '{
  "DEV": [
    {
      "GitEmail": "asd@asd.com"
    }
  ],
  "TEST": [
    {
      "GitEmail": "asd1@asd.com"
    }
  ],
  "PROD": [
    {
      "GitEmail": "asd2@asd.com"
    }
  ]
}' | ConvertFrom-Json

PS> ($json.psobject.Properties | ? {$_.Value -match "asd@asd.com"}).Name

根据电子邮件匹配,您可以检索环境名称。


推荐阅读