我有如下所示的嵌套JSON文件
{name:{firstname: Joe, lastname: Bloggs}}我从Json转换并保存为变量。
$json = Get-Content -Path .\file.json -Raw | ConvertFrom-Json我有一个函数,它检索属性路径并将其保存到一个变量中。
$firstname = "name.firstname"为什么
$json.$firstname不回乔?我如何才能让Powershell理解它应该被解释为
$json.name.firstname而不是
$json."name.firstname"非常感谢。
发布于 2022-10-18 20:44:32
"name.firstname"只是一个文字字符串,PowerShell不知道您指的是name属性中的嵌套属性firstname。您可以通过Invoke-Expression或$ExecutionContext.InvokeCommand.ExpandString(...)展开字符串,但最好尽可能避免。下面是另一种通过遍历路径来做到这一点的方法:
$json = '{name:{firstname: "Joe", lastname: "Bloggs"}}' | ConvertFrom-Json
$path = 'name.firstname'
$path.Split('.') | & {
begin { $targetObject = $json }
process { $targetObject = $targetObject.$_ }
end { $targetObject }
}https://stackoverflow.com/questions/74117172
复制相似问题