解释 PowerShell 中的 JSON 格式。

powershellmicrosoft technologiessoftware & coding更新于 2026/2/5 23:07:17

Javascript 对象表示法 (JSON) 是一种轻量级结构,易于人类阅读,也易于机器解析和理解。虽然名称中包含 Javascript,但 Javascript 和 JSON 并不相同,它们的语法和结构也不同。

您可以获取更多关于 JSON 的信息

https://www.json.org/json-en.html

它的基本结构是键值对,但两者之间用冒号":"分隔。它的结构与哈希表 PSCustomObjecct 几乎相似。例如:

{
   "Name": "Albert Don"
}

如果您有多个键值对,可以用逗号分隔。例如:

{
   "Name": "Albert Don",
   "City": "New York",
   "SSID": 17728839
}

将上述文件保存为扩展名 .json。我们将首先使用 ConvertFrom-Json 命令获取表格格式的输出。还有一个命令可以使用 ConvertTo-Json 命令将文件/输出转换为 JSON。

PS E:\scripts\Powershell> Get-Content .\test.json | ConvertFrom-Json
Name          City       SSID
----          ----       ----
Albert Don    New York 17728839

如果您有多组键值对,则需要在数组语法 - [] 内声明它们,并使用逗号 (,) 分隔每组。

示例

[
   {
      "Name": "Albert Don",
      "City": "New York",
      "SSID": 17728839
   },
   {
      "Name":"John Carter",
      "City":"Ohio",
      "SSID":224544
   },
   {
      "Name":"Milly Lucas",
      "City":"Netherlands",
      "SSID":44903
   }
]

输出

PS E:\scripts\Powershell> Get-Content .\test.json | ConvertFrom-Json
Name       City       SSID
----       ----       ----
Albert Don New York 17728839
John Carter Ohio 224544
Milly Lucas Netherlands 44903

您可以使用 Convertto-Json cmdlet 将输出表转换为 Json 格式。请参阅以下示例。

Get-Service | Select Name, DisplayName, Status,StartType | Select –First 3
| ConvertTo-Json

输出

PS E:\scripts\Powershell> Get-
Service | Select Name, DisplayName, Status,StartType | Select -
First 3 | ConvertTo-Json
[
   {
      "Name": "AarSvc_69f5c",
      "DisplayName": "Agent Activation Runtime_69f5c",
      "Status": 1,
      "StartType": 3
   },
   {
      "Name": "AdobeARMservice",
      "DisplayName": "Adobe Acrobat Update Service",
      "Status": 4,
      "StartType": 2
   },
   {
      "Name": "AdobeFlashPlayerUpdateSvc",
      "DisplayName": "Adobe Flash Player Update Service",
      "Status": 1,
      "StartType": 3
   }
]

在上面的例子中,各个服务被分成一组数组。


相关文章