【发布时间】:2020-06-23 18:39:26
【问题描述】:
我在 my.json 文件中有一个 json 结构,如下所示:
{
"key1":{
"key1A":{
"someKey":"someValue"
},
"key1B":{
"someKey":"someValue"
}
},
"key2":{
"key2A":{
"someKey":"someValue"
},
"key2B":{
"someKey":"someValue"
}
},
"key3":{
"key3A":{
"someKey":"someValue"
},
"key3B":{
"someKey":"someValue"
}
}
}
使用 powershell 我想搜索“node”key1B 并选择它。假设是
- key1B 在整个树中只出现一次
- 搜索词 (key1B) 可以是根元素或根元素的子元素。
如果我要知道 key1B 在哪个节点下的父节点,我可以在下面使用:
Get-Content -Raw my.json | ConvertFrom-Json | Select-Object -ExpandProperty key1 | Select-Object -ExpandProperty key1B
如何使上面的选择通用,以便我正在搜索的节点可以位于根节点或根节点的子节点中?
【问题讨论】:
-
你的 JSON 语法不正确,
"key1"和"key2"都没有关闭} -
@NekoMusume 抱歉,已修复。
-
试试
((Get-Content -Raw my.json | ConvertFrom-Json) | gm | ? {$_.Definition -imatch "key1A"}).name这样会得到key1A的父节点 -
能够使用您的 JSON 获取
key1a的内容为$testJson,如下所示:$($testJson | ConvertFrom-Json).$((($testJson | ConvertFrom-Json) | gm | ? {$_.Definition -imatch "key1A"}).name).key1a非常令人困惑,但如果我有一个带有实际转换的 json 的单独变量会更容易,证明概念虽然
标签: json powershell psobject select-object