ConvertTo-Json
Converte um objeto em uma cadeia de caracteres formatada em JSON.
Sintaxe
Default (Predefinição)
ConvertTo-Json
[-InputObject] <Object>
[-Depth <Int32>]
[-Compress]
[-EnumsAsStrings]
[-AsArray]
[-EscapeHandling <StringEscapeHandling>]
[<CommonParameters>]
Description
O cmdlet ConvertTo-Json 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.
Observação
A partir do PowerShell 7.2, propriedades do Sistema de Tipo Estendido dos objetos DateTime e String não são mais serializadas e somente o objeto simples é convertido no formato JSON
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 PowerShell.
Muitos sites usam JSON em vez de XML para serializar dados para 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 evita a perda de dados indesejados ao converter objetos.
A partir do PowerShell 7.5-preview.3, ConvertTo-Json pode serializar valores de BigInteger como números JSON brutos.
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
}
Este comando usa o cmdlet ConvertTo-Json para converter um objeto GregorianCalendar em uma cadeia de caracteres formatada em JSON.
Exemplo 2
Get-Date | ConvertTo-Json; Get-Date | ConvertTo-Json -AsArray
"2021-08-05T16:13:05.6394416-07:00"
[
"2021-08-05T16:13:05.6421709-07:00"
]
Este exemplo mostra a saída de ConvertTo-Json cmdlet com e sem o parâmetro AsArray switch. Você pode ver que a segunda parte da saída está entre colchetes de matriz.
Exemplo 3
@{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 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 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 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 cmdlets ConvertTo-Json e ConvertFrom-Json para converter um objeto em uma cadeia de caracteres JSON e um objeto JSON.
Parâmetros
-AsArray
Produz o objeto entre colchetes de matriz, mesmo que a entrada seja um único objeto.
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 |
-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 pode ser qualquer número de 0 a 100. O valor predefinido é 2.
ConvertTo-Json emite um aviso se o número de níveis em um objeto de entrada exceder esse número.
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 |
-EnumsAsStrings
Fornece uma opção de serialização alternativa que converte todas as enumerações em sua representação de cadeia de caracteres.
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 |
-EscapeHandling
Controla como determinados caracteres são escapados na saída JSON resultante. Por padrão, apenas 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 - HTML (
<,>,&,',") e caracteres de controle são escapados.
Esse parâmetro foi introduzido no PowerShell 6.2.
Propriedades dos parâmetros
| Tipo: | Newtonsoft.Json.StringEscapeHandling |
| Default value: | Default |
| 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 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.
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 este cmdlet.
Saídas
String
Este cmdlet retorna uma cadeia de caracteres que representa o objeto de entrada convertido em uma cadeia de caracteres JSON.
Notas
O cmdlet ConvertTo-Json é implementado usando Newtonsoft Json.NET.