首页 > 解决方案 > 如何在 PowerShell 中将 PSCustomObject 转换为数组?

问题描述

ConvertFrom-Json我有以下用命令解析的 JSON 文件:

{
  "item1": {
    "class": "class1",
    "price": "price1"
  },
  "item2": {
    "class": "class2",
    "price": "price2"
  }
}

这将创建PSCustomObject具有两个属性的 aitem1item2。它产生以下输出:

item1                         item2
-----                         -----
@{class=class1; price=price1} @{class=class2; price=price2}

我需要的是一个打印的数组:

name  class  price
----  -----  -----
item1 class1 price1
item2 class2 price2

请注意,我无法修改 JSON 文件的内容。

非常感谢任何形式的帮助。

标签: powershell

解决方案


在我同事的代码中找到了解决方案:

$json = Get-Content -Path "<file-path>" | ConvertFrom-Json;
$json.PSObject.Properties | ForEach-Object { [PSCustomObject] @{
    name = $_.Name;
    class = $_.Value.class;
    price = $_.Value.price;
}}

推荐阅读