首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Powershell:嵌套属性,在此对象上找不到该属性

Powershell:嵌套属性,在此对象上找不到该属性
EN

Stack Overflow用户
提问于 2022-10-18 20:35:53
回答 1查看 35关注 0票数 2

我有如下所示的嵌套JSON文件

代码语言:javascript
复制
{name:{firstname: Joe, lastname: Bloggs}}

我从Json转换并保存为变量。

代码语言:javascript
复制
$json = Get-Content -Path .\file.json -Raw | ConvertFrom-Json

我有一个函数,它检索属性路径并将其保存到一个变量中。

代码语言:javascript
复制
$firstname = "name.firstname"

为什么

代码语言:javascript
复制
$json.$firstname

不回乔?我如何才能让Powershell理解它应该被解释为

代码语言:javascript
复制
$json.name.firstname

而不是

代码语言:javascript
复制
$json."name.firstname"

非常感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-18 20:44:32

"name.firstname"只是一个文字字符串,PowerShell不知道您指的是name属性中的嵌套属性firstname。您可以通过Invoke-Expression$ExecutionContext.InvokeCommand.ExpandString(...)展开字符串,但最好尽可能避免。下面是另一种通过遍历路径来做到这一点的方法:

代码语言:javascript
复制
$json = '{name:{firstname: "Joe", lastname: "Bloggs"}}' | ConvertFrom-Json
$path = 'name.firstname'

$path.Split('.') | & {
    begin { $targetObject = $json }
    process { $targetObject = $targetObject.$_ }
    end { $targetObject }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74117172

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档