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
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.