如何在 powershell 中将 JSON 键和值捕获为数组
How to capture JSON key and values as an array in powershell
我有一个来自 api 调用的 json 输出,部分如下所示。
作为此 json 的一部分,列出了许多 id 和 name 值。现在,我想将 id 和 name 对一起捕获为一个数组,作为程序中某些步骤的一部分,我得到 return ed with name ,我想将这个名字与之前存储在数组中的名字和 return 对应的id值进行比较。
因为我必须将此 id 值传递给另一个 rest api 调用。
有人可以帮助我如何通过 powershell 捕获这个数组吗?
$Json = '{
"value": [
{
"id": "1",
"name": "datafactory.git",
"size": 0,
"remoteUrl": "",
"sshUrl": "",
"webUrl": "",
"isDisabled": false
},
{
"id": "2",
"name": "datafactory",
"defaultBranch": "refs/heads/main",
"size": 13569,
"remoteUrl": "",
"sshUrl": "",
"webUrl": "",
"isDisabled": false
},
]
}'
我会为此创建一个 hash table:
($Json |ConvertFrom-Json).Value |ForEach-Object {
$HashTable = @{}
} {
$HashTable[$_.name] = $_.id
}
用法:
$HashTable.datafactory
2
您还可以考虑引用完整的值 属性 对象(而不仅仅是 id
):
($Json |ConvertFrom-Json).Value |ForEach-Object {
$HashTable = @{}
} {
$HashTable[$_.name] = $_
}
用法:
$HashTable.datafactory.id
2
$HashTable.datafactory.size
13569
我有一个来自 api 调用的 json 输出,部分如下所示。 作为此 json 的一部分,列出了许多 id 和 name 值。现在,我想将 id 和 name 对一起捕获为一个数组,作为程序中某些步骤的一部分,我得到 return ed with name ,我想将这个名字与之前存储在数组中的名字和 return 对应的id值进行比较。 因为我必须将此 id 值传递给另一个 rest api 调用。
有人可以帮助我如何通过 powershell 捕获这个数组吗?
$Json = '{
"value": [
{
"id": "1",
"name": "datafactory.git",
"size": 0,
"remoteUrl": "",
"sshUrl": "",
"webUrl": "",
"isDisabled": false
},
{
"id": "2",
"name": "datafactory",
"defaultBranch": "refs/heads/main",
"size": 13569,
"remoteUrl": "",
"sshUrl": "",
"webUrl": "",
"isDisabled": false
},
]
}'
我会为此创建一个 hash table:
($Json |ConvertFrom-Json).Value |ForEach-Object {
$HashTable = @{}
} {
$HashTable[$_.name] = $_.id
}
用法:
$HashTable.datafactory
2
您还可以考虑引用完整的值 属性 对象(而不仅仅是 id
):
($Json |ConvertFrom-Json).Value |ForEach-Object {
$HashTable = @{}
} {
$HashTable[$_.name] = $_
}
用法:
$HashTable.datafactory.id
2
$HashTable.datafactory.size
13569