Partager via


Test-Json

Teste si une chaîne est un document JSON valide

Syntax

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

Description

L’applet Test-Json de commande teste si une chaîne est un document JSON (JavaScript Object Notation) valide et peut éventuellement vérifier ce document JSON par rapport à un schéma fourni.

La chaîne vérifiée peut ensuite être utilisée avec l’applet ConvertFrom-Json de commande pour convertir une chaîne au format JSON en objet JSON, qui est facilement gérée dans PowerShell ou envoyée à un autre programme ou service web qui accède à l’entrée JSON.

De nombreux sites web utilisent JSON au lieu de XML pour sérialiser les données en vue de la communication entre les serveurs et les applications basées sur le web.

L’applet de commande a été introduite dans PowerShell 6.1

Exemples

Exemple 1 : Tester si un objet est json valide

Cet exemple teste si la chaîne d’entrée est un document JSON valide.

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

True

Exemple 2 : Tester un objet sur un schéma fourni

Cet exemple prend une chaîne contenant un schéma JSON et le compare à une chaîne d’entrée.

$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

Dans cet exemple, nous obtenons une erreur, car le schéma attend un entier pour l’âge , mais l’entrée JSON que nous avons testée utilise une valeur de chaîne à la place.

Pour plus d’informations, consultez Schéma JSON.

Paramètres

-Json

Spécifie la chaîne JSON à tester pour la validité. Entrez une variable contenant la chaîne, ou tapez une commande ou une expression qui obtient la chaîne. Vous pouvez également diriger une chaîne vers Test-Json.

Le paramètre Json est obligatoire.

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

-Schema

Spécifie un schéma sur lequel valider l’entrée JSON. Si elle est passée Test-Json , vérifie que l’entrée Json est conforme à la spécification spécifiée par le paramètre Schema et retourne $True uniquement si l’entrée est conforme au schéma fourni.

Pour plus d’informations, consultez Schéma JSON.

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

Entrées

String

Vous pouvez diriger une chaîne JSON vers Test-Json.

Sorties

Boolean

Notes

L’applet Test-Json de commande est implémentée à l’aide de la classe NJsonSchema.