ConvertTo-Json
Converte um objeto em uma cadeia de caracteres formatada em JSON.
Syntax
ConvertTo-Json
[-InputObject] <Object>
[-Depth <Int32>]
[-Compress]
[-EnumsAsStrings]
[-AsArray]
[-EscapeHandling <StringEscapeHandling>]
[<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 ConvertFrom-Json
cmdlet para converter uma cadeia de caracteres formatada 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.
A partir do PowerShell 7.1, ConvertTo-Json
emite um aviso se a profundidade do objeto de entrada exceder a profundidade especificada para o comando. Isso impede a perda de dados indesejada ao converter objetos.
Este cmdlet foi introduzido no Windows PowerShell 3.0.
Exemplos
Exemplo 1
(Get-UICulture).Calendar | ConvertTo-Json
{
"MinSupportedDateTime": "0001-01-01T00:00:00",
"MaxSupportedDateTime": "9999-12-31T23:59:59.9999999",
"AlgorithmType": 1,
"CalendarType": 1,
"Eras": [
1
],
"TwoDigitYearMax": 2029,
"IsReadOnly": true
}
Esse comando usa o ConvertTo-Json
cmdlet para converter um objeto GregorianCalendar em uma cadeia de caracteres formatada em JSON.
Exemplo 2
Get-Date | ConvertTo-Json; Get-Date | ConvertTo-Json -AsArray
{
"value": "2018-10-12T23:07:18.8450248-05:00",
"DisplayHint": 2,
"DateTime": "October 12, 2018 11:07:18 PM"
}
[
{
"value": "2018-10-12T23:07:18.8480668-05:00",
"DisplayHint": 2,
"DateTime": "October 12, 2018 11:07:18 PM"
}
]
Este exemplo mostra a saída do ConvertTo-Json
cmdlet com e sem o parâmetro de opção AsArray . Você pode ver que a segunda parte da saída está encapsulada entre colchetes de matriz.
Exemplo 3
@{Account="User01";Domain="Domain01";Admin="True"} | ConvertTo-Json -Compress
{"Domain":"Domain01","Account":"User01","Admin":"True"}
Esse comando mostra o efeito de usar o parâmetro Compress de ConvertTo-Json
. A compactação afeta apenas a aparência da cadeia de caracteres, não sua validade.
Exemplo 4
Get-Date | Select-Object -Property * | ConvertTo-Json
{
"DisplayHint": 2,
"DateTime": "October 12, 2018 10:55:32 PM",
"Date": "2018-10-12T00:00:00-05:00",
"Day": 12,
"DayOfWeek": 5,
"DayOfYear": 285,
"Hour": 22,
"Kind": 2,
"Millisecond": 639,
"Minute": 55,
"Month": 10,
"Second": 32,
"Ticks": 636749817326397744,
"TimeOfDay": {
"Ticks": 825326397744,
"Days": 0,
"Hours": 22,
"Milliseconds": 639,
"Minutes": 55,
"Seconds": 32,
"TotalDays": 0.95523888627777775,
"TotalHours": 22.925733270666665,
"TotalMilliseconds": 82532639.774400011,
"TotalMinutes": 1375.54399624,
"TotalSeconds": 82532.6397744
},
"Year": 2018
}
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 5
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 e ConvertFrom-Json
para converter um objeto em uma cadeia de caracteres JSON e um objeto JSON.
Parâmetros
-AsArray
Gera o objeto entre colchetes de matriz, mesmo que a entrada seja um único objeto.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Compress
Omite o espaço em branco e a formatação recuada na cadeia de saída.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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
para 100
. O valor padrão é 2
. ConvertTo-Json
emitirá um aviso se o número de níveis em um objeto de entrada exceder esse número.
Type: | Int32 |
Position: | Named |
Default value: | 2 |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-EnumsAsStrings
Fornece uma opção de serialização alternativa que converte todas as enumerações em sua representação de cadeia de caracteres.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-EscapeHandling
Controla como determinados caracteres são escapados na saída JSON resultante. Por padrão, somente caracteres de controle (como newline) são escapados.
Os valores aceitáveis são:
- Padrão – somente caracteres de controle são escapados.
- EscapeNonAscii - Todos os caracteres não ASCII e de controle são escapados.
- EscapeHtml – os caracteres de controle HTML (
<
,>
,&
,'
,"
) e são escapados.
Esse parâmetro foi introduzido no PowerShell 6.2.
Type: | Newtonsoft.Json.StringEscapeHandling |
Position: | Named |
Default value: | Default |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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 redirecionar 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
retorna a representação JSON de null
. Quando o objeto de entrada é uma cadeia de caracteres vazia, ConvertTo-Json
retorna a representação JSON de uma cadeia de caracteres vazia.
Type: | Object |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Entradas
Você pode redirecionar qualquer objeto para ConvertTo-Json
.
Saídas
Observações
O ConvertTo-Json
cmdlet é implementado usando Newtonsoft Json.NET.