Escribir objeto JSON en un archivo en PowerShell
- Objetos personalizados de PowerShell
- Objeto JSON de PowerShell a cadena JSON
- Guardar cadena JSON en un archivo
PowerShell es un lenguaje basado en objetos muy poderoso que se puede usar para crear datos estructurados. Por lo tanto, es más fácil trabajar con él que con texto sin formato.
Objetos personalizados de PowerShell
El PSCustomObject
es la base para los objetos de PowerShell. Contiene propiedades y valores.
Por lo tanto, PowerShell también puede manejar objetos JSON.
Vamos a crear un objeto personalizado JSON a partir de un JSON de ejemplo. Hemos asignado un JSON a la variable $MyJsonVar
.
$MyJsonVar = @"
{
"ExampleJson":{
"Fruit1":{
"Name":"Apple",
"Price":"`$10.00"
}
}
}
"@
Producción:
Necesitamos crear el objeto JSON real usando el cmdlet ConvertFrom-JSON
. Esto creará el PSCustomObject
real.
Asignemos el objeto JSON recién creado a la variable $MyJsonObject
.
$MyJsonObject = $MyJsonVar | ConvertFrom-Json
Vamos a mostrar el PSCustomObject
recién creado, un objeto JSON.
$MyJsonObject
Producción:
Puede acceder al objeto JSON por sus propiedades.
$MyJsonObject.ExampleJson.Fruit1.Price
$MyJsonObject.ExampleJson.Fruit1.Name
Producción:
Entonces, se ha confirmado que obtuvimos un objeto personalizado de PowerShell adecuado llamado $MyJsonObject
.
Objeto JSON de PowerShell a cadena JSON
El cmdlet ConvertTo-Json
puede convertir un objeto personalizado existente en una cadena JSON. Esto va a ser texto sin formato en formato JSON.
Sintaxis:
ConvertTo-Json
[-InputObject] <Object>
[-Depth <Int32>]
[-Compress]
[-EnumsAsStrings]
[-AsArray]
[-EscapeHandling <StringEscapeHandling>]
[<CommonParameters>]
Todos los parámetros anteriores son opcionales para el cmdlet ConvertTo-Json
.
El parámetro -Depth
puede especificar el número de niveles en la cadena JSON. Es un parámetro importante y debe usarse con mucho cuidado.
El uso incorrecto de este parámetro puede causar una pérdida de datos. El valor predeterminado es 2.
El parámetro -InputObject
especifica el objeto personalizado que debe convertirse en una cadena JSON. Podemos canalizar un objeto personalizado al cmdlet ConvertTo-Json
fácilmente.
Podemos enviar el $MyJsonObject
a través de la tubería (|
) para transformar el objeto personalizado en una cadena JSON.
$MyJsonObject | ConvertTo-Json
Producción:
Guardar cadena JSON en un archivo
Es posible guardar una cadena JSON en un archivo usando PowerShell. Podemos canalizar la salida de la cadena JSON al cmdlet Out-File
.
Es posible especificar la ruta donde necesitamos crear el archivo .json
.
$MyJsonObject | ConvertTo-Json | Out-File "D:\misc\example.json"
La ruta "D\misc\example.json"
puede variar. Esto creará un archivo example.json
dentro de la estructura de directorio dada.
Producción:
El objeto personalizado JSON se ha guardado en un archivo example.json
en formato JSON.
Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.