Test-Json
Testar om en sträng är ett giltigt JSON-dokument
Syntax
Test-Json
[-Json] <string>
[[-Schema] <string>]
[<CommonParameters>]
Description
Cmdleten Test-Json
testar om en sträng är ett giltigt JSON-dokument (JavaScript Object Notation) och kan också verifiera JSON-dokumentet mot ett angivet schema.
Den verifierade strängen kan sedan användas med cmdleten ConvertFrom-Json
konvertera en JSON-formaterad sträng till ett JSON-objekt, som enkelt hanteras i PowerShell eller skickas till ett annat program eller en annan webbtjänst som har åtkomst till JSON-indata.
Många webbplatser använder JSON i stället för XML för att serialisera data för kommunikation mellan servrar och webbaserade appar.
Den här cmdleten introducerades i PowerShell 6.1
Exempel
Exempel 1: Testa om ett objekt är giltigt JSON
I det här exemplet testas om indatasträngen är ett giltigt JSON-dokument.
"{'name': 'Ashley', 'age': 25}" | Test-Json
True
Exempel 2: Testa ett objekt mot ett angivet schema
Det här exemplet tar en sträng som innehåller ett JSON-schema och jämför den med en indatasträng.
$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
I det här exemplet får vi ett fel eftersom schemat förväntar sig ett heltal för ålder , men JSON-indata som vi testade använder ett strängvärde i stället.
Mer information finns i JSON-schema.
Parametrar
-Json
Anger JSON-strängen som ska testas för giltighet. Ange en variabel som innehåller strängen eller skriv ett kommando eller uttryck som hämtar strängen. Du kan också skicka en sträng till Test-Json
.
Json-parametern krävs.
Type: | String |
Position: | 1 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Schema
Anger ett schema som JSON-indata ska verifieras mot. Om det skickas Test-Json
verifieras att Json-indata överensstämmer med specifikationen som anges av parametern Schema och returneras $True
endast om indata överensstämmer med det angivna schemat.
Mer information finns i JSON-schema.
Type: | String |
Position: | 2 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Indata
Du kan skicka en JSON-sträng till Test-Json
.
Utdata
Boolean
Kommentarer
Cmdleten Test-Json
implementeras med hjälp av klassen NJsonSchema.