在PowerShell中说明JSON格式

Javascript Object Notation(JSON)是一种轻量级结构,易于人类阅读,并且易于解析和理解。尽管名称包含Javascript,但是Javascript和JSON都不同,并且它们的语法和结构也不同。

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

https://www.json.org/json-zh.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

如果您有一组以上的键值对,则需要在数组Syntax- []中声明它们,并需要用逗号(,)分隔每组。

示例

[
   {
      "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
   }
]

在上面的示例中,各个服务被拆分为一组数组。