ConvertFrom-Json
Convierte una cadena con formato JSON en un objeto personalizado.
Syntax
ConvertFrom-Json
[-InputObject] <String>
[<CommonParameters>]
Description
El ConvertFrom-Json
cmdlet convierte una cadena con formato de notación de objetos JavaScript (JSON) en un objeto PSCustomObject personalizado que tiene una propiedad para cada campo de la cadena JSON. JSON se usa habitualmente en sitios web para proporcionar una representación textual de objetos. El estándar JSON no prohíbe el uso prohibido con psCustomObject. Por ejemplo, si la cadena JSON contiene claves duplicadas, este cmdlet usa solo la última clave. Vea otros ejemplos a continuación.
Para generar una cadena JSON a partir de cualquier objeto, use el ConvertTo-Json
cmdlet .
Este cmdlet se introdujo en PowerShell 3.0.
Nota
Este cmdlet no admite JSON con comentarios.
Ejemplos
Ejemplo 1: Convertir un objeto DateTime en un objeto JSON
Este comando usa los ConvertTo-Json
cmdlets y ConvertFrom-Json
para convertir un objeto DateTime del Get-Date
cmdlet en un objeto JSON y, a continuación, en psCustomObject.
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
En el ejemplo se usa el Select-Object
cmdlet para obtener todas las propiedades del objeto DateTime . Usa el ConvertTo-Json
cmdlet para convertir el objeto DateTime en una cadena con formato de objeto JSON y el ConvertFrom-Json
cmdlet para convertir la cadena con formato JSON en un objeto PSCustomObject .
Ejemplo 2: Obtener cadenas JSON de un servicio web y convertirlos en objetos de PowerShell
Este comando usa el Invoke-WebRequest
cmdlet para obtener cadenas JSON de un servicio web y, a continuación, usa el ConvertFrom-Json
cmdlet para convertir contenido JSON en objetos que se pueden administrar en PowerShell.
# Ensures that Invoke-WebRequest uses TLS 1.2
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$j = Invoke-WebRequest 'https://api.github.com/repos/PowerShell/PowerShell/issues' | ConvertFrom-Json
También puede usar el Invoke-RestMethod
cmdlet , que convierte automáticamente el contenido JSON en objetos .
Ejemplo 3: Convertir una cadena JSON en un objeto personalizado
En este ejemplo se muestra cómo usar el ConvertFrom-Json
cmdlet para convertir un archivo JSON en un objeto personalizado de PowerShell.
Get-Content JsonFile.JSON | ConvertFrom-Json
El comando usa Get-Content cmdlet para obtener las cadenas de un archivo JSON. A continuación, usa el operador de canalización para enviar la cadena delimitada al ConvertFrom-Json
cmdlet , que lo convierte en un objeto personalizado.
Parámetros
-InputObject
Especifica las cadenas JSON que se van a convertir en objetos JSON. Escriba una variable que contenga la cadena, o un comando o una expresión que obtengan la cadena. También puede canalizar una cadena a ConvertFrom-Json
.
El parámetro InputObject es obligatorio, pero su valor puede ser una cadena vacía. Cuando el objeto de entrada es una cadena vacía, ConvertFrom-Json
no genera ninguna salida. El valor InputObject no puede ser $null
.
Type: | String |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Entradas
Puede canalizar una cadena JSON a ConvertFrom-Json
.
Salidas
PSCustomObject
Notas
El ConvertFrom-Json
cmdlet se implementa mediante la clase JavaScriptSerializer.