Compartir a través de


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

String

Puede canalizar una cadena JSON a ConvertFrom-Json.

Salidas

PSCustomObject

Notas

El ConvertFrom-Json cmdlet se implementa mediante la clase JavaScriptSerializer.