Compartir a través de


ConvertTo-Json

Convierte un objeto en una cadena con formato JSON.

Sintaxis

Default (valor predeterminado)

ConvertTo-Json
    [-InputObject] <Object>
    [-Depth <Int32>]
    [-Compress]
    [<CommonParameters>]

Description

El cmdlet ConvertTo-Json convierte cualquier objeto 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 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 datos para la comunicación entre servidores y aplicaciones basadas en 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 parámetro -Compress de ConvertTo-Json. La compresión afecta solo a la apariencia 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 a una cadena con formato JSON. El comando usa el cmdlet Select-Object para obtener todos () de las propiedades del objeto DateTime. La salida muestra la cadena JSON que convertTo-Json devuelto.

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 el ConvertTo-Json de y cmdlets convertFrom-Json para convertir un objeto en una cadena JSON y un objeto JSON.

Parámetros

-Compress

Omite el espacio en blanco y el formato con sangría en la cadena de salida.

Propiedades de parámetro

Tipo:SwitchParameter
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-Depth

Especifica cuántos niveles de objetos contenidos se incluyen en la representación JSON. El valor predeterminado es 2.

Propiedades de parámetro

Tipo:Int32
Valor predeterminado:2
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-InputObject

Especifica los objetos que se van a convertir en formato JSON. Escriba una variable que contenga los objetos, o escriba un comando o 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 se $null, ConvertTo-Json no genera ninguna salida. Cuando el objeto de entrada es una cadena vacía, ConvertTo-Json devuelve una cadena vacía.

Propiedades de parámetro

Tipo:Object
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:0
Obligatorio:True
Valor de la canalización:True
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

CommonParameters

Este cmdlet admite los parámetros comunes: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction y -WarningVariable. Para obtener más información, vea about_CommonParameters.

Entradas

Object

Puede canalizar cualquier objeto a ConvertTo-Json.

Salidas

String

Notas

  • El cmdlet ConvertTo-Json se implementa mediante el uso de la clase JavaScriptSerializer .