ConvertTo-Json

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

Sintaxe

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

Description

O ConvertTo-Json cmdlet converte qualquer objeto .NET 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 para converter uma cadeia de caracteres formatada ConvertFrom-Json em JSON em um objeto JSON, que é facilmente gerenciado no PowerShell.

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

Este cmdlet foi introduzido no Windows PowerShell 3.0.

Exemplos

Exemplo 1

(Get-UICulture).Calendar | ConvertTo-Json

{
    "MinSupportedDateTime":  "\/Date(-62135596800000)\/",
    "MaxSupportedDateTime":  "\/Date(253402300799999)\/",
    "AlgorithmType":  1,
    "CalendarType":  1,
    "Eras":  [
                 1
             ],
    "TwoDigitYearMax":  2029,
    "IsReadOnly":  false
}

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

Exemplo 2

@{Account="User01";Domain="Domain01";Admin="True"} | ConvertTo-Json -Compress

{"Domain":"Domain01","Account":"User01","Admin":"True"}

Este comando 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

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 ConvertTo-Json cmdlet para converter um objeto System.DateTime do Get-Date cmdlet em uma cadeia de caracteres formatada em JSON. O comando usa o Select-Object cmdlet para obter todas as propriedades (*) do objeto DateTime . A saída mostra a cadeia de caracteres JSON retornada ConvertTo-Json .

Exemplo 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

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

Parâmetros

-Compress

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

Tipo:SwitchParameter
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Depth

Especifica quantos níveis de objetos contidos estão incluídos na representação JSON. O valor pode ser qualquer número de 1 até 100. O valor padrão é 2. ConvertTo-Json emite um aviso se o número de níveis em um objeto de entrada exceder esse número.

Tipo:Int32
Cargo:Named
Valor padrão:2
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-InputObject

Especifica os objetos para converter em formato JSON. Insira uma variável que contém os objetos ou digite um comando ou uma expressão que obtém os objetos. Você também pode canalizar um objeto para ConvertTo-Json.

O parâmetro InputObject é necessário, mas seu valor pode ser nulo ($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.

Tipo:Object
Cargo:0
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:True
Aceitar caracteres curinga:False

Entradas

Object

Você pode canalizar qualquer objeto para esse cmdlet.

Saídas

String

Esse cmdlet retorna uma cadeia de caracteres que representa o objeto de entrada convertido em uma cadeia de caracteres JSON.

Observações

O ConvertTo-Json cmdlet é implementado usando a classe JavaScriptSerializer.