使用Powershell字典

hof1towb  于 2023-02-16  发布在  Shell
关注(0)|答案(1)|浏览(214)

我挣扎于非常基本的powershell脚本。
我有一个对象“ids”(我不能确切地说出它是什么类型),它可以像这样转换为json

[{"id": "3ccbfe7a-e381-ed11-81ad-000d3aba6139","RowKey": "204640","PartitionKey": "ppm"},
 {"id": "7339255d-e381-ed11-81ad-000d3aba6139","RowKey": "205269","PartitionKey": "ppm"}]

我只想通过“行键”得到“id”。

$ids["204640"] shall resolve to "3ccbfe7a-e381-ed11-81ad-000d3aba6139".

很明显,这应该是非常容易的-但我失败了...我的理解是,这是一个列表或数组的对象命名属性。我假设一些简单的铸造魔术是必要的...
(my调试技能非常有限,因为我是Powershell新手,我在Azure门户中编写脚本,试图使用表绑定编写Azure函数。实际上“ID”来自该绑定。)

but5z9lq

but5z9lq1#

不清楚您的Json字符串是否已经转换为对象,可以使用ConvertFrom-Json,然后在RowKey属性上使用Group-Object -AsHashtable分组:

$string = '
[
  {"id": "3ccbfe7a-e381-ed11-81ad-000d3aba6139","RowKey": "204640","PartitionKey": "ppm"},
  {"id": "7339255d-e381-ed11-81ad-000d3aba6139","RowKey": "205269","PartitionKey": "ppm"}
]
'

$hash = (ConvertFrom-Json $string) | Group-Object RowKey -AsHashTable
$hash['205269'].id # => 7339255d-e381-ed11-81ad-000d3aba6139

相关问题