ConvertFrom-Json
將 JSON 格式的字串轉換成自定義物件。
語法
ConvertFrom-Json
[-InputObject] <String>
[<CommonParameters>]
Description
ConvertFrom-Json
Cmdlet 會將 JavaScript 物件表示法 (JSON) 格式化字串轉換成自定義 PSCustomObject 物件,該物件具有 JSON 字元串中每個欄位的屬性。 網站通常會使用 JSON 來提供物件的文字表示法。 JSON 標準不會禁止使用 PSCustomObject。 例如,如果 JSON 字串包含重複的索引鍵,則此 Cmdlet 只會使用最後一個索引鍵。 請參閱下列其他範例。
若要從任何對象產生 JSON 字串,請使用 ConvertTo-Json
Cmdlet。
此 Cmdlet 已在 PowerShell 3.0 中引進。
注意
此 Cmdlet 不支援具有批注的 JSON。
範例
範例 1:將 DateTime 物件轉換為 JSON 物件
此命令會使用 ConvertTo-Json
和 ConvertFrom-Json
Cmdlet,將 DateTime 物件從 Get-Date
Cmdlet 轉換成 JSON 物件,然後轉換成 PSCustomObject。
Get-Date | Select-Object -Property * | ConvertTo-Json | ConvertFrom-Json
DisplayHint : 2
DateTime : Friday, January 13, 2012 8:06:31 PM
Date : 1/13/2012 8:00:00 AM
Day : 13
DayOfWeek : 5
DayOfYear : 13
Hour : 20
Kind : 2
Millisecond : 400
Minute : 6
Month : 1
Second : 31
Ticks : 634620819914009002
TimeOfDay : @{Ticks=723914009002; Days=0; Hours=20; Milliseconds=400; Minutes=6; Seconds=31; TotalDays=0.83786343634490734; TotalHours=20.108722472277776; TotalMilliseconds=72391400.900200009; TotalMinutes=1206.5233483366667;TotalSeconds=72391.4009002}
Year : 2012
此範例會使用 Select-Object
Cmdlet 來取得 DateTime 物件的所有屬性。 它會使用 ConvertTo-Json
Cmdlet,將 DateTime 物件轉換成格式化為 JSON 物件的字串,而 ConvertFrom-Json
Cmdlet 將 JSON 格式化的字串轉換成 PSCustomObject 物件。
範例 2:從 Web 服務取得 JSON 字串,並將其轉換為 PowerShell 物件
此命令會使用 Invoke-WebRequest
Cmdlet 從 Web 服務取得 JSON 字串,然後使用 ConvertFrom-Json
Cmdlet 將 JSON 內容轉換成可在 PowerShell 中管理的物件。
# Ensures that Invoke-WebRequest uses TLS 1.2
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$j = Invoke-WebRequest 'https://api.github.com/repos/PowerShell/PowerShell/issues' | ConvertFrom-Json
您也可以使用 Invoke-RestMethod
Cmdlet,其會自動將 JSON 內容轉換成物件。
範例 3:將 JSON 字串轉換成自定義物件
此範例示範如何使用 ConvertFrom-Json
Cmdlet 將 JSON 檔案轉換成 PowerShell 自定義物件。
Get-Content JsonFile.JSON | ConvertFrom-Json
命令會使用 Get-Content Cmdlet 來取得 JSON 檔案中的字串。 然後,它會使用管線運算符,將分隔字串傳送至 ConvertFrom-Json
Cmdlet,以將它轉換成自定義物件。
參數
-InputObject
指定要轉換成 JSON 物件的 JSON 字串。 輸入包含字串的變數,或輸入取得字串的命令或表達式。 您也可以使用管線將字串傳送至 ConvertFrom-Json
。
需要 InputObject 參數,但其值可以是空字串。 當輸入物件是空字串時,ConvertFrom-Json
不會產生任何輸出。
InputObject 值不能 $null
。
類型: | String |
Position: | 0 |
預設值: | None |
必要: | True |
接受管線輸入: | True |
接受萬用字元: | False |
輸入
您可以使用管線將 JSON 字串傳送至 ConvertFrom-Json
。
輸出
PSCustomObject
備註
ConvertFrom-Json
Cmdlet 是使用 JavaScriptSerializer 類別實作。