Kae Travis

Using PowerShell to Read and Write JSON

Posted on by in PowerShell
Tags:

This blog provides a simple example of using PowerShell to read and write JSON.

Using PowerShell to Write JSON

In this example, we first create a PowerShell object with some sample properties and nested objects. We then use the ConvertTo-Json cmdlet to convert the PowerShell object to a JSON string. Finally, we use the Set-Content cmdlet to save the JSON string to a file.

This example shows how to read and write JSON using PowerShell, and can be customized to fit the specific needs of your JSON data.

$obj = @{
"PropertyName" = "PropertyValue"
"ObjectName" = @{
"ObjectPropertyName" = "ObjectPropertyValue"
}
}
# Convert object to JSON
$json = $obj | ConvertTo-Json
# Save JSON to file
$json | Set-Content -Path C:\alkane\example.json

Using PowerShell to Read JSON

In this example, we first load a JSON file using the Get-Content cmdlet and pass the -Raw parameter to read the entire file as a single string. We then use the ConvertFrom-Json cmdlet to convert the JSON string to a PowerShell object. We can then access specific properties within the JSON object using dot notation.

# Load JSON file
$json = Get-Content -Path C:\alkane\example.json -Raw | ConvertFrom-Json
# Access JSON properties
$json.PropertyName
$json.ObjectName.PropertyName

Using PowerShell to Iterate Through JSON

Let’s suppose our JSON file has more than one object with multiple properties (key/value pairs) like so:

$obj = @{
"ObjectName1" = @{
"Object1PropertyName1" = "Object1PropertyValue1"
"Object1PropertyName2" = "Object1PropertyValue2"
}
"ObjectName2" = @{
"Object2PropertyName1" = "Object2PropertyValue1"
"Object2PropertyName2" = "Object2PropertyValue2"
}
}
# Convert object to JSON
$json = $obj | ConvertTo-Json
# Save JSON to file
$json | Set-Content -Path C:\alkane\example.json

We might then want to loop through these objects and properties to read each value. We can do this like so:

# Load JSON file
$json = Get-Content -Path C:\alkane\example.json -Raw | ConvertFrom-Json
# Loop through the objects in the JSON data
foreach ($object in $json.PSObject.Properties) {
Write-Host "Object name: $($object.Name)"
$objectproperties = Get-Member -InputObject $object.Value -MemberType NoteProperty
foreach($property in $objectproperties) {
Write-Host "Property name: $($property.Name)"
Write-Host "Property value: $($object.Value.($property.Name))"
}
}

 

Using PowerShell to Read and Write JSON
Using PowerShell to Read and Write JSON

Leave a Reply