arrays - 从多值属性数组创建对象
问题描述
我正在使用 Auvik Powershell 模块,并且某些命令的返回中有一些多值。
将其转换为单个值对象的最佳方法是什么。
type id attributes
---- -- ----------
tenant 53337108651709 @{domainPrefix=50waters; tenantType=client}
tenant 58897678651709 @{domainPrefix=BillAve; tenantType=client}
==================================================== ======= 像这样======
type id domain prefix tenant type
---- ---- ---- ------
tenant 58897678651709 BillAve client
tenant 53337108651709 50waters client
解决方案
还有更多方法,您可以在以下代码片段中看到其中一些方法:
'--- Original object'
$objectOrig | Out-Default
'--- Flattened using a `foreach` loop'
$ObjectFlat = foreach ( $line in $objectOrig ) {
[pscustomobject]@{
type=$line.type
id=$line.id
domainPrefix=$line.attributes.domainPrefix
tenantType=$line.attributes.tenantType
}
}
$ObjectFlat | Out-Default
'--- Flattened using calculated properties'
$ObjectFlaX = $objectOrig | Select-Object -Property type, id,
@{Name='domainPrefix'; Expression={$_.attributes.domainPrefix}},
@{Name='tenantType' ; Expression={$_.attributes.tenantType}}
$ObjectFlaX | Out-Default
输出:62503286.ps1
--- Original object type id attributes ---- -- ---------- tenant 53337108651709 @{domainPrefix=50waters; tenantType=client} tenant 58897678651709 @{domainPrefix=BillAve; tenantType=client} --- Flattened using a `foreach` loop type id domainPrefix tenantType ---- -- ------------ ---------- tenant 53337108651709 50waters client tenant 58897678651709 BillAve client --- Flattened using calculated properties type id domainPrefix tenantType ---- -- ------------ ---------- tenant 53337108651709 50waters client tenant 58897678651709 BillAve client
推荐阅读
- r - 如何在多列上使用 map() 函数
- google-apps-script - 独立脚本无法写入文档
- java - .setValue 和 .addValueListener 上的错误
- c# - 如何以编程方式将审阅者分配给 AzureDevOps PullRequest?
- git - 如何在 mac os 上将 Intellij Idea Terminal 设置为 git bash
- solr - SOLR - 如何影响人气领域的得分?
- windows - 并行运行多个批处理命令的 Windows 服务
- asp.net - 单击按钮时输入数量值不增加
- python - Pip 安装错误:[Errno13] 权限被拒绝
- java - 在获取空对象的活动之间传递对象