Partilhar via


ConvertTo-Json

Converte um objeto em uma cadeia de caracteres formatada em JSON.

Sintaxe

Default (Predefinição)

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

Description

O cmdlet ConvertTo-Json converte qualquer objeto em uma cadeia de caracteres no formato JSON (JavaScript Object Notation). As propriedades são convertidas em nomes de campo, os valores de campo são convertidos em valores de propriedade e os métodos são removidos.

Em seguida, você pode usar o cmdlet ConvertFrom-Json para converter uma cadeia de caracteres formatada em JSON em um objeto JSON, que é facilmente gerenciado no Windows PowerShell.

Muitos sites usam JSON em vez de XML para serializar dados para comunicação entre servidores e aplicativos baseados na Web.

Este cmdlet foi introduzido no Windows PowerShell 3.0.

Exemplos

Exemplo 1

PS C:\> (Get-UICulture).Calendar | ConvertTo-Json
{
    "MinSupportedDateTime":  "\/Date(-62135596800000)\/",
    "MaxSupportedDateTime":  "\/Date(253402300799999)\/",
    "AlgorithmType":  1,
    "CalendarType":  1,
    "Eras":  [
                 1
             ],
    "TwoDigitYearMax":  2029,
    "IsReadOnly":  false
}

Este exemplo usa o cmdlet ConvertTo-Json para converter um objeto GregorianCalendar em uma cadeia de caracteres formatada em JSON.

Exemplo 2

PS C:\> @{Account="User01";Domain="Domain01";Admin="True"} | ConvertTo-Json -Compress
{"Admin":"True","Account":"User01","Domain":"Domain01"}

Este exemplo mostra o efeito do uso do parâmetro -Compress de ConvertTo-Json. A compactação afeta apenas a aparência da cadeia de caracteres, não sua validade.

Exemplo 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
}

Este exemplo usa o cmdlet ConvertTo-Json para converter um objeto System.DateTime do cmdlet Get-Date em uma cadeia de caracteres formatada em JSON. O comando usa o cmdlet Select-Object para obter todas (*) das propriedades do objeto DateTime. A saída mostra a cadeia de caracteres JSON que ConvertTo-Json retornada.

Exemplo 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

Este exemplo mostra como usar os cmdlets ConvertTo-Json e ConvertFrom-Json para converter um objeto em uma cadeia de caracteres JSON e um objeto JSON.

Parâmetros

-Compress

Omite espaço em branco e formatação recuada na cadeia de caracteres de saída.

Propriedades dos parâmetros

Tipo:SwitchParameter
Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-Depth

Especifica quantos níveis de objetos contidos estão incluídos na representação JSON. O valor padrão é 2.

Propriedades dos parâmetros

Tipo:Int32
Default value:2
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-InputObject

Especifica os objetos a serem convertidos para o formato JSON. Insira uma variável que contenha os objetos ou digite um comando ou expressão que obtenha os objetos. Você também pode canalizar um objeto para ConvertTo-Json.

O parâmetro InputObject é necessário, mas seu valor pode ser null ($null) ou uma cadeia de caracteres vazia. Quando o objeto de entrada é $null, ConvertTo-Json não gera nenhuma saída. Quando o objeto de entrada é uma cadeia de caracteres vazia, ConvertTo-Json retorna uma cadeia de caracteres vazia.

Propriedades dos parâmetros

Tipo:Object
Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:0
Obrigatório:True
Valor do pipeline:True
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

CommonParameters

Este cmdlet suporta os parâmetros comuns: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Para obter mais informações, consulte about_CommonParameters.

Entradas

Object

Você pode canalizar qualquer objeto para ConvertTo-Json.

Saídas

String

Notas