ConvertTo-Json
Convierte un objeto en una cadena con formato JSON.
Sintaxis
ConvertTo-Json
[-InputObject] <Object>
[-Depth <Int32>]
[-Compress]
[<CommonParameters>]
Description
El ConvertTo-Json
cmdlet convierte cualquier objeto .NET en una cadena en formato de 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 ConvertFrom-Json
cmdlet para convertir una cadena con formato JSON en un objeto JSON, que se administra fácilmente en 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
(Get-UICulture).Calendar | ConvertTo-Json
{
"MinSupportedDateTime": "\/Date(-62135596800000)\/",
"MaxSupportedDateTime": "\/Date(253402300799999)\/",
"AlgorithmType": 1,
"CalendarType": 1,
"Eras": [
1
],
"TwoDigitYearMax": 2029,
"IsReadOnly": false
}
Este comando usa el ConvertTo-Json
cmdlet para convertir un objeto GregorianoCalendar en una cadena con formato JSON.
Ejemplo 2
@{Account="User01";Domain="Domain01";Admin="True"} | ConvertTo-Json -Compress
{"Domain":"Domain01","Account":"User01","Admin":"True"}
Este comando muestra el efecto de usar el parámetro Compress de ConvertTo-Json
. La compresión afecta solo al aspecto de la cadena, no a su validez.
Ejemplo 3
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 ConvertTo-Json
cmdlet para convertir un objeto System.DateTime del Get-Date
cmdlet en una cadena con formato JSON. El comando usa el Select-Object
cmdlet para obtener todas las propiedades (*
) del objeto DateTime . La salida muestra la cadena JSON que ConvertTo-Json
devolvió.
Ejemplo 4
Get-Date | Select-Object -Property * | ConvertTo-Json | ConvertFrom-Json
DisplayHint : 2
DateTime : October 12, 2018 10:55:52 PM
Date : 2018-10-12 12:00:00 AM
Day : 12
DayOfWeek : 5
DayOfYear : 285
Hour : 22
Kind : 2
Millisecond : 768
Minute : 55
Month : 10
Second : 52
Ticks : 636749817527683372
TimeOfDay : @{Ticks=825527683372; Days=0; Hours=22; Milliseconds=768; Minutes=55; Seconds=52;
TotalDays=0.95547185575463; TotalHours=22.9313245381111; TotalMilliseconds=82552768.3372;
TotalMinutes=1375.87947228667; TotalSeconds=82552.7683372}
Year : 2018
En este ejemplo se muestra cómo usar los ConvertTo-Json
cmdlets 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.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Depth
Especifica cuántos niveles de objetos contenidos se incluyen en la representación JSON. El valor puede ser cualquier número de 1
a 100
. El valor predeterminado es 2
. ConvertTo-Json
emite una advertencia si el número de niveles de un objeto de entrada supera este número.
Tipo: | Int32 |
Posición: | Named |
Valor predeterminado: | 2 |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | 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 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.
Tipo: | Object |
Posición: | 0 |
Valor predeterminado: | None |
Requerido: | True |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | False |
Entradas
Puede canalizar cualquier objeto a este cmdlet.
Salidas
Este cmdlet devuelve una cadena que representa el objeto de entrada convertido en una cadena JSON.
Notas
El ConvertTo-Json
cmdlet se implementa mediante la clase JavaScriptSerializer.