Test-Json

Testa se uma cadeia de caracteres é um documento JSON válido

Syntax

Test-Json
    [-Json] <string>
    [[-Schema] <string>]
    [<CommonParameters>]

Description

O Test-Json cmdlet testa se uma cadeia de caracteres é um documento JSON (JavaScript Object Notation) válido e pode, opcionalmente, verificar esse documento JSON em relação a um esquema fornecido.

A cadeia de caracteres verificada pode ser usada com o ConvertFrom-Json cmdlet converter uma cadeia de caracteres formatada em JSON em um objeto JSON, que é facilmente gerenciado no PowerShell ou enviado para outro programa ou serviço Web que acessa a entrada JSON.

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

Esse cmdlet foi introduzido no PowerShell 6.1

Exemplos

Exemplo 1: Testar se um objeto é um JSON válido

Este exemplo testa se a cadeia de caracteres de entrada é um documento JSON válido.

"{'name': 'Ashley', 'age': 25}" | Test-Json

True

Exemplo 2: testar um objeto em relação a um esquema fornecido

Este exemplo usa uma cadeia de caracteres que contém um esquema JSON e a compara a uma cadeia de caracteres de entrada.

$schema = @'
{
  "definitions": {},
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "http://example.com/root.json",
  "type": "object",
  "title": "The Root Schema",
  "required": [
    "name",
    "age"
  ],
  "properties": {
    "name": {
      "$id": "#/properties/name",
      "type": "string",
      "title": "The Name Schema",
      "default": "",
      "examples": [
        "Ashley"
      ],
      "pattern": "^(.*)$"
    },
    "age": {
      "$id": "#/properties/age",
      "type": "integer",
      "title": "The Age Schema",
      "default": 0,
      "examples": [
        25
      ]
    }
  }
}
'@
"{'name': 'Ashley', 'age': '25'}" | Test-Json -Schema $schema

Test-Json : IntegerExpected: #/age
At line:1 char:37
+ "{'name': 'Ashley', 'age': '25'}" | Test-Json -Schema $schema
+                                     ~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : InvalidData: (:) [Test-Json], Exception
+ FullyQualifiedErrorId : InvalidJsonAgainstSchema,Microsoft.PowerShell.Commands.TestJsonCommand
False

Neste exemplo, obtemos um erro porque o esquema espera um inteiro para idade , mas a entrada JSON que testamos usa um valor de cadeia de caracteres.

Para obter mais informações, consulte Esquema JSON.

Parâmetros

-Json

Especifica a cadeia de caracteres JSON a ser testada quanto à validade. Insira uma variável que contenha a cadeia de caracteres ou digite um comando ou expressão que obtenha essa cadeia. Você também pode redirecionar uma cadeia de caracteres para Test-Json.

O parâmetro Json é necessário.

Type:String
Position:1
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Schema

Especifica um esquema para validar a entrada JSON. Se aprovada Test-Json , validará que a entrada Json está em conformidade com a especificação especificada pelo parâmetro Schema e retornará $True somente se a entrada estiver em conformidade com o esquema fornecido.

Para obter mais informações, consulte Esquema JSON.

Type:String
Position:2
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Entradas

String

Você pode redirecionar uma cadeia de caracteres JSON para Test-Json.

Saídas

Boolean

Observações

O Test-Json cmdlet é implementado usando a classe NJsonSchema.