ConvertFrom-Json
Published: February 29, 2012
Updated: August 15, 2012
Applies To: Windows PowerShell 3.0
ConvertFrom-Json
Syntax
Parameter Set: Default ConvertFrom-Json [-InputObject] <String> [ <CommonParameters>]
Detailed Description
The ConvertFrom-Json cmdlet converts a JSON-formatted string to custom object (PSCustomObject) that has a property for each field in the JSON string.
To generate a JSON string from any object, use the ConvertTo-Json cmdlet.
This cmdlet is introduced in Windows PowerShell 3.0.
Parameters
-InputObject<String>
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).
|
Aliases |
none |
|
Required? |
true |
|
Position? |
1 |
|
Default Value |
none |
|
Accept Pipeline Input? |
true (ByValue) |
|
Accept Wildcard Characters? |
false |
<CommonParameters>
This cmdlet supports the common parameters: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer, and -OutVariable. For more information, see about_CommonParameters (http://go.microsoft.com/fwlink/p/?LinkID=113216).
Inputs
The input type is the type of the objects that you can pipe to the cmdlet.
-
System.String
You can pipe a JSON string to ConvertFrom-Json.
Outputs
The output type is the type of the objects that the cmdlet emits.
Notes
-
The ConvertFrom-Json cmdlet is implemented by using the JavaScriptSerializer class (http://msdn.microsoft.com/en-us/library/system.web.script.serialization.javascriptserializer(VS.100).aspx).
Examples
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
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
Example 2
This command uses the Invoke-RestMethod cmdlet to get JSON strings from a web service and then it uses the ConvertTo-Json cmdlet to convert JSON content to objects that can be managed in Windows PowerShell.
PS C:\> $j = Invoke-RestMethod http://search.twitter.com/search.json?q=PowerShell | ConvertFrom-Json
Related topics