ConvertTo-Json
Convierte un objeto en una cadena con formato JSON.
Syntax
ConvertTo-Json
[-InputObject] <Object>
[-Depth <Int32>]
[-Compress]
[<CommonParameters>]
Description
El cmdlet ConvertTo-Json convierte cualquier objeto en una cadena con formato notación de objetos JavaScript (JSON). Las propiedades se convierten en nombres de campo, los valores de campo se convierten en valores de propiedad y se quitan los métodos.
A continuación, puede usar el cmdlet ConvertFrom-Json para convertir una cadena con formato JSON en un objeto JSON, que se administra fácilmente en Windows PowerShell.
Muchos sitios web usan JSON en lugar de XML para serializar los datos para la comunicación entre servidores y aplicaciones web.
Este cmdlet se introdujo en Windows PowerShell 3.0.
Ejemplos
Ejemplo 1
PS C:\> (Get-UICulture).Calendar | ConvertTo-Json
{
"MinSupportedDateTime": "\/Date(-62135596800000)\/",
"MaxSupportedDateTime": "\/Date(253402300799999)\/",
"AlgorithmType": 1,
"CalendarType": 1,
"Eras": [
1
],
"TwoDigitYearMax": 2029,
"IsReadOnly": false
}
En este ejemplo se usa el cmdlet ConvertTo-Json para convertir un objeto GregorianoCalendar en una cadena con formato JSON.
Ejemplo 2
PS C:\> @{Account="User01";Domain="Domain01";Admin="True"} | ConvertTo-Json -Compress
{"Admin":"True","Account":"User01","Domain":"Domain01"}
En este ejemplo se muestra el efecto de usar el -Compress
parámetro ConvertTo-Json.
La compresión afecta solo al aspecto de la cadena, no a su validez.
Ejemplo 3
PS C:\> Get-Date | Select-Object -Property * | ConvertTo-Json
{
"DisplayHint": 2,
"DateTime": "Friday, January 13, 2012 8:06:16 PM",
"Date": "\/Date(1326441600000)\/",
"Day": 13,
"DayOfWeek": 5,
"DayOfYear": 13,
"Hour": 20,
"Kind": 2,
"Millisecond": 221,
"Minute": 6,
"Month": 1,
"Second": 16,
"Ticks": 634620819762218083,
"TimeOfDay": {
"Ticks": 723762218083,
"Days": 0,
"Hours": 20,
"Milliseconds": 221,
"Minutes": 6,
"Seconds": 16,
"TotalDays": 0.83768775241087956,
"TotalHours": 20.104506057861109,
"TotalMilliseconds": 72376221.8083,
"TotalMinutes": 1206.2703634716668,
"TotalSeconds": 72376.22180829999
},
"Year": 2012
}
En este ejemplo se usa el cmdlet ConvertTo-Json para convertir un objeto System.Datetime del cmdlet Get-Date en una cadena con formato JSON. El comando usa el cmdlet Select-Object para obtener todas (*
) de las propiedades del objeto DateTime . El resultado muestra la cadena JSON que ConvertTo-Jsondevolvió.
Ejemplo 4
PS C:\> Get-Date | Select-Object -Property * | ConvertTo-Json | ConvertFrom-Json
DisplayHint : 2
DateTime : Saturday, October 13, 2018 3:28:40 AM
Date : 10/13/2018 12:00:00 AM
Day : 13
DayOfWeek : 6
DayOfYear : 286
Hour : 3
Kind : 2
Millisecond : 346
Minute : 28
Month : 10
Second : 40
Ticks : 636749981203464381
TimeOfDay : @{Ticks=125203464381; Days=0; Hours=3; Milliseconds=346; Minutes=28; Seconds=40;
TotalDays=0.14491141710763888; TotalHours=3.4778740105833332; TotalMilliseconds=12520346.4381;
TotalMinutes=208.67244063500002; TotalSeconds=12520.3464381}
Year : 2018
En este ejemplo se muestra cómo usar los cmdlets ConvertTo-Json y ConvertFrom-Json para convertir un objeto en una cadena JSON y un objeto JSON.
Parámetros
-Compress
Omite los espacios en blanco y el formato con sangría en la cadena de resultado.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Depth
Especifica cuántos niveles de objetos contenidos se incluyen en la representación JSON. El valor predeterminado es 2.
Type: | Int32 |
Position: | Named |
Default value: | 2 |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
Especifica los objetos que se van a convertir en formato JSON. Especifique una variable que contenga los objetos o escriba un comando o una expresión que obtenga los objetos. También se puede canalizar un objeto a ConvertTo-Json.
Se requiere el parámetro InputObject , pero su valor puede ser null ($null
) o una cadena vacía.
Cuando el objeto de entrada es $null
, ConvertTo-Json no genera ninguna salida.
Cuando el objeto de entrada es una cadena vacía, ConvertTo-Json devuelve una cadena vacía.
Type: | Object |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Entradas
Se puede canalizar cualquier objeto a ConvertTo-Json.
Salidas
Notas
- El cmdlet ConvertTo-Json se implementa mediante la clase JavaScriptSerializer.