Los comandos ConvertTo-Json
y ConvertFrom-Json
en PowerShell se utilizan para convertir datos a formato JSON y para parsear (analizar) estructuras JSON en objetos de PowerShell. Son útiles cuando se trabaja con APIs, archivos de configuración o cuando se necesita convertir datos para su intercambio entre sistemas.
ConvertTo-Json
: Convierte objetos de PowerShell (como hash tables, arreglos o listas) en cadenas JSON para facilitar su almacenamiento o transmisión a servicios que requieran este formato.
ConvertFrom-Json
: Convierte una cadena JSON en objetos de PowerShell, permitiendo acceder a las propiedades y valores para su manipulación y análisis.
Estos comandos son esenciales para trabajar con servicios web RESTful y procesar datos en PowerShell usando el formato de intercambio estándar JSON.
ConvertTo-Json -InputObject <Objeto>
ConvertFrom-Json -InputObject <CadenaJSON>
$persona = @{
Nombre = "Juan"
Edad = 30
Ciudad = "Madrid"
}
$personaJson = $persona | ConvertTo-Json
$personaJson
Salida:
{
"Nombre": "Juan",
"Edad": 30,
"Ciudad": "Madrid"
}
Este ejemplo convierte un hash table de PowerShell en una cadena JSON para su almacenamiento o transmisión.
$json = '{
"Nombre": "Ana",
"Edad": 25,
"Ciudad": "Barcelona"
}'
$personaObj = $json | ConvertFrom-Json
$personaObj.Nombre
Salida:
Ana
Aquí, ConvertFrom-Json
transforma la cadena JSON en un objeto de PowerShell, y se puede acceder a la propiedad Nombre
de forma directa.
$empresa = @{
Nombre = "Tech Solutions"
Empleados = @(
@{Nombre = "Luis"; Cargo = "Desarrollador"}
@{Nombre = "Maria"; Cargo = "Analista"}
)
}
$empresaJson = $empresa | ConvertTo-Json
$empresaJson
Salida:
{
"Nombre": "Tech Solutions",
"Empleados": [
{
"Nombre": "Luis",
"Cargo": "Desarrollador"
},
{
"Nombre": "Maria",
"Cargo": "Analista"
}
]
}
Este ejemplo convierte un objeto con arreglos y propiedades anidadas a formato JSON, ideal para almacenar estructuras complejas.
$json = '{
"Empresa": "Soluciones IT",
"Departamentos": [
{"Nombre": "Desarrollo", "Empleados": 20},
{"Nombre": "Soporte", "Empleados": 15}
]
}'
$datos = $json | ConvertFrom-Json
$datos.Departamentos | ForEach-Object { $_.Nombre }
Salida:
Desarrollo
Soporte
Este ejemplo convierte un JSON con propiedades anidadas en un objeto y luego accede a los nombres de cada departamento.
$persona = @{
Nombre = "Carlos"
Edad = 28
Dirección = @{
Calle = "Calle Falsa 123"
Ciudad = "Valencia"
}
}
# Convertir a JSON jerárquico
$persona | ConvertTo-Json -Depth 3
El parámetro -Depth
controla cuán profunda es la conversión en estructuras complejas (por defecto es -Depth 2
).
Puedes consultar más detalles sobre ConvertTo-Json
y ConvertFrom-Json
en la documentación oficial de Microsoft.
Jorge García
Fullstack developer