当前位置: 首页 > 知识库问答 >
问题:

PowerShell 等效于选择对象“-展开属性”,用于查找嵌套对象的位置对象

慕宏峻
2023-03-14

我有以下代码:

$results = Invoke-RestMethod -Uri "XXX" -Credential $cred 

$results.value | Where-Object releaseDefinition.name -eq "XYZ"

出于某种原因,当我对它运行等效的“Select Obejct”查询时,问题变得很清楚:

$results.value | Select-Object releaseDefinition.name

都是空的..谷歌说我需要使用“-ExpandProperty”标签来做这件事:

$results.value | Select-Object releaseDefinition -ExpandProperty name

因此,我尝试对我的“Where Object”语句执行相同的操作:

$results.value | Where-Object releaseDefinition -ExpandProperty name -eq "XYZ"

它的错误是...因为该属性不存在。所以我需要找到一种不同的方法来完成这个任务,如何在不使用这个参数的情况下完成上面的代码呢?另外,为什么此参数存在于 select 上而不是 where 子句上?

共有1个答案

夹谷弘亮
2023-03-14

我发现了一个变通方法,如果您将语句放在括号中并引用基本元素($_),您可以在对象的任何级别访问元素:

$results = Invoke-RestMethod -Uri "XXX" -Credential $cred 

$results.value | Where-Object { $_.releaseDefinition.name -eq "XYZ" }
 类似资料:
  • 我想用flow注释以下内容: 我知道如何对进行类型检查,以使的类型为(如上所示),但如何对其属性进行类型检查? 已经尝试过这个: 但是flow只是抱怨从未使用过和。

  • 问题内容: 我有一个对象,它可以是任何数量的深度,并且可以具有任何现有属性。例如: 在此我想设置(或覆盖)属性,如下所示: 属性字符串可以具有任何深度,并且值可以是任何类型/事物。 如果属性键已经存在,则不需要合并对象和数组作为值。 前面的示例将产生以下对象: 如何实现这种功能? 问题答案: 此函数使用您指定的参数应添加/更新容器中的数据。请注意,您需要跟踪架构中的哪些元素是容器,哪些是值(字符串

  • 我有一个对象,可以是任何数量的层次深,可以有任何现有的属性。例如: 在此基础上,我希望设置(或覆盖)如下属性: 属性字符串可以有任何深度,值可以是任何类型/事物。 如果属性键已经存在,则不需要合并作为值的对象和数组。 上一个示例将生成以下对象: 如何实现这样的功能?

  • 六羟甲基三聚氰胺六甲醚。。在某些情况下,我有一个对象需要在hazelcast实例上执行操作。所以我实现了HazelcastInstanceAware接口,但这似乎不适用于嵌套类。。。 以下核心输出"null"到控制台: 公共类NullError实现可序列化,HazelcastInstanceAware{私有瞬态HazelcastInstance instance1;私有瞬态HazelcastIns

  • 我正在尝试反序列化一个 JSON 响应,其中包含一些标准字段和一个包含子类属性的 嵌套对象,例如: 字段< code>id和< code>type是标准的,所以我有一个基类< code>Base,然后扩展一些更具体的类: 如何让杰克逊读取 对象作为进一步字段值的来源?我假设我需要创建一个自定义反序列化程序,但我不确定如何具体完成此操作。

  • 我有一些文档在嵌套对象中有嵌套对象: 在这里,主文档有几个嵌套的对象(标记),对于每个标记有几个嵌套的对象(事件)。 我希望获得transfer_processed类型的事件在transfer类型的标记之后60000毫秒内发生的所有文档。为此,我需要查询tags.at、tags.type、tags.events.at和tags.events.type。我不知道如何查询:我只查询tags.event