Converts a JSON-formatted string to a custom object.


Parameter Set: Default
ConvertFrom-Json [-InputObject] <String> [ <CommonParameters>]

Detailed Description

The ConvertFrom-Json cmdlet converts a JSON-formatted string to a custom object (PSCustomObject) that has a property for each field in the JSON string. JSON is commonly used by web sites to provide a textual representation of objects.

To generate a JSON string from any object, use the ConvertTo-Json cmdlet.

This cmdlet is introduced in Windows PowerShell 3.0.



Specifies the JSON strings to convert to JSON objects. Enter a variable that contains the string, or type a command or expression that gets the string. You can also pipe a string to ConvertFrom-Json.

The InputObject parameter is required, but its value can be an empty string. When the input object is an empty string, ConvertFrom-Json does not generate any output. The InputObject value cannot be null ($null).







Default Value


Accept Pipeline Input?

true (ByValue)

Accept Wildcard Characters?



This cmdlet supports the common parameters: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer, and -OutVariable. For more information, see    about_CommonParameters (


The input type is the type of the objects that you can pipe to the cmdlet.


The output type is the type of the objects that the cmdlet emits.


  • The ConvertFrom-Json cmdlet is implemented by using the JavaScriptSerializer class (


Example 1

This command uses the ConvertTo-Json and ConvertFrom-Json cmdlets to convert a DateTime object from the Get-Date cmdlet to a JSON object.

The command uses the Select-Object cmdlet to get all of the properties of the DateTime object. It uses the ConvertTo-Json cmdlet to convert the DateTime object to a JSON-formatted string and the ConvertFrom-Json cmdlet to convert the JSON-formatted string to a JSON object..

PS C:\> Get-Date | Select-Object -Property * | ConvertTo-Json | ConvertFrom-Json

Example 2

This command uses the Invoke-WebRequest cmdlet to get JSON strings from a web service and then it uses the ConvertFrom-Json cmdlet to convert JSON content to objects that can be managed in Windows PowerShell.

You can also use the Invoke-RestMethod cmdlet, which automatically converts JSON content to objects.

PS C:\> $j = Invoke-WebRequest -Uri | ConvertFrom-Json

Example 3

This example shows how to use the ConvertFrom-Json cmdlet to convert a JSON file to a Windows PowerShell custom object.

The command uses Get-Content cmdlet to get the strings in a JSON file. It uses the Join operator to join the strings in the file into a single string that is delimited by newline characters (`n). Then it uses the pipeline operator to send the delimited string to the ConvertFrom-Json cmdlet, which converts it to a custom object.

The Join operator is required, because the ConvertFrom-Json cmdlet expects a single string.

PS C:\> (Get-Content JsonFile.JSON) -join "`n" | ConvertFrom-Json

Related topics

Community Additions