Test-Json
Annak vizsgálata, hogy egy sztring érvényes JSON-dokumentum-e
Syntax
JsonString (Alapértelmezett)
Test-Json
[-Json] <String>
[-Options <String[]>]
[<CommonParameters>]
JsonStringWithSchemaString
Test-Json
[-Json] <String>
[-Schema] <String>
[-Options <String[]>]
[<CommonParameters>]
JsonStringWithSchemaFile
Test-Json
[-Json] <String>
-SchemaFile <String>
[-Options <String[]>]
[<CommonParameters>]
JsonPath
Test-Json
-Path <String>
[-Options <String[]>]
[<CommonParameters>]
JsonPathWithSchemaString
Test-Json
[-Schema] <String>
-Path <String>
[-Options <String[]>]
[<CommonParameters>]
JsonPathWithSchemaFile
Test-Json
-Path <String>
-SchemaFile <String>
[-Options <String[]>]
[<CommonParameters>]
JsonLiteralPath
Test-Json
-LiteralPath <String>
[-Options <String[]>]
[<CommonParameters>]
JsonLiteralPathWithSchemaString
Test-Json
[-Schema] <String>
-LiteralPath <String>
[-Options <String[]>]
[<CommonParameters>]
JsonLiteralPathWithSchemaFile
Test-Json
-LiteralPath <String>
-SchemaFile <String>
[-Options <String[]>]
[<CommonParameters>]
Description
A Test-Json parancsmag ellenőrzi, hogy a sztring érvényes JavaScript Object Notation -dokumentum-e, és opcionálisan ellenőrizheti, hogy a JSON-dokumentum egy megadott sémán van-e.
Az ellenőrzött sztring ezután használható a ConvertFrom-Json parancsmaggal, amely JSON-formátumú sztringet alakít át JSON-objektummá, amely könnyen kezelhető a PowerShellben, vagy elküldhető egy másik programnak vagy webszolgáltatásnak, amely hozzáfér a JSON-bemenethez.
Sok webhely az XML helyett JSON-t használ az adatok szerializálására a kiszolgálók és a webalapú alkalmazások közötti kommunikációhoz.
Ez a parancsmag a PowerShell 6.1-ben lett bevezetve
Példák
1. példa: Annak ellenőrzése, hogy egy objektum érvényes JSON-e
Ez a példa azt vizsgálja, hogy a bemeneti sztring érvényes JSON-dokumentum-e.
'{"name": "Ashley", "age": 25}' | Test-Json
True
2. példa: Objektum tesztelése egy megadott sémán
Ez a példa egy JSON-sémát tartalmazó sztringet vesz fel, és összehasonlítja azt egy bemeneti sztringgel.
$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 -ErrorAction SilentlyContinue
False
Ebben a példában az ErrorAction paramétert használjuk a hibaüzenet letiltásához. A paraméter nélkül a parancs hibát is ad ki, mert a séma egy egész számot vár az életkorhoz , de a tesztelt JSON-bemenet inkább sztringértéket használ.
További információ: JSON-séma.
3. példa: Objektum tesztelése fájlból származó sémán
A JSON-séma $ref kulcsszó használatával hivatkozhat definíciókra. A $ref feloldhatók egy másik fájlra hivatkozó URI-val. A SchemaFile paraméter elfogadja a JSON-sémafájl literális elérési útját, és lehetővé teszi a JSON-fájlok érvényesítését az ilyen sémákon.
Ebben a példában a schema.json fájl hivatkozik definitions.json.
Get-Content schema.json
{
"description":"A person",
"type":"object",
"properties":{
"name":{
"$ref":"definitions.json#/definitions/name"
},
"hobbies":{
"$ref":"definitions.json#/definitions/hobbies"
}
}
}
Get-Content definitions.json
{
"definitions":{
"name":{
"type":"string"
},
"hobbies":{
"type":"array",
"items":{
"type":"string"
}
}
}
}
'{"name": "James", "hobbies": [".NET", "Blogging"]}' | Test-Json -SchemaFile 'schema.json'
True
További információ: Összetett sémastrukturálása.
Paraméterek
-Json
Az érvényesség ellenőrzéséhez használt JSON-sztringet adja meg. Adjon meg egy változót, amely tartalmazza a sztringet, vagy írjon be egy parancsot vagy kifejezést, amely lekéri a sztringet. Karakterláncot is továbbíthat a Test-Json-ra.
A Json paraméter szükséges.
Paramétertulajdonságok
| Típus: | String |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
JsonString
| Position: | 0 |
| Kötelező: | True |
| Folyamatból származó érték: | True |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
JsonStringWithSchemaString
| Position: | 0 |
| Kötelező: | True |
| Folyamatból származó érték: | True |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
JsonStringWithSchemaFile
| Position: | 0 |
| Kötelező: | True |
| Folyamatból származó érték: | True |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
-LiteralPath
Egy JSON-fájl elérési útját adja meg. A LiteralPath értékét pontosan a beírt módon használja a rendszer. A rendszer egyetlen karaktert sem értelmez helyettesítő karakterként. Ha az elérési útvonal escape karaktereket tartalmaz, tedd azt egyes idézőjelek közé. Az egyes idézőjelek azt mondják a PowerShellnek, hogy egyetlen karaktert se értelmezzen escape szekvenciaként.
Ez a paraméter a PowerShell 7.4-ben lett hozzáadva.
Paramétertulajdonságok
| Típus: | String |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
| Aliasok: | PSPath, LP |
Paraméterkészletek
JsonLiteralPath
| Position: | 0 |
| Kötelező: | True |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | True |
| Fennmaradó argumentumokból származó érték: | False |
JsonLiteralPathWithSchemaString
| Position: | 0 |
| Kötelező: | True |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | True |
| Fennmaradó argumentumokból származó érték: | False |
JsonLiteralPathWithSchemaFile
| Position: | 0 |
| Kötelező: | True |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | True |
| Fennmaradó argumentumokból származó érték: | False |
-Options
Alapértelmezés szerint a Test-Json nem támogatja a megjegyzéseket vagy záró vesszőket tartalmazó JSON-t. Ez a paraméter lehetővé teszi az alapértelmezett viselkedés módosítására vonatkozó beállítások megadását. A következő lehetőségek érhetők el:
IgnoreCommentsAllowTrailingCommas
Ez a paraméter a PowerShell 7.5.0-preview.4-ben lett hozzáadva.
Paramétertulajdonságok
| Típus: | String[] |
| Alapértelmezett érték: | None |
| Elfogadott értékek: | IgnoreComments, AllowTrailingCommas |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
(All)
| Position: | Named |
| Kötelező: | False |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
-Path
Megadja egy JSON-fájl elérési útját. Ez a parancsmag lekéri az elemet a megadott helyen. A helyettesítő karakterek használata engedélyezett, de a mintát egyetlen fájlra kell feloldani.
Ez a paraméter a PowerShell 7.4-ben lett hozzáadva.
Paramétertulajdonságok
| Típus: | String |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | True |
| DontShow: | False |
Paraméterkészletek
JsonPath
| Position: | 0 |
| Kötelező: | True |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | True |
| Fennmaradó argumentumokból származó érték: | False |
JsonPathWithSchemaString
| Position: | 0 |
| Kötelező: | True |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | True |
| Fennmaradó argumentumokból származó érték: | False |
JsonPathWithSchemaFile
| Position: | 0 |
| Kötelező: | True |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | True |
| Fennmaradó argumentumokból származó érték: | False |
-Schema
Egy sémát ad meg a JSON-bemenet ellenőrzéséhez. Ha megfelel, Test-Json ellenőrzi, hogy a JSON-bemenet megfelel-e a Séma paraméter által megadott specifikációnak, és csak akkor adja vissza a $true, ha a bemenet megfelel a megadott sémának.
További információ: JSON-séma.
Paramétertulajdonságok
| Típus: | String |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
JsonStringWithSchemaString
| Position: | 1 |
| Kötelező: | True |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
JsonLiteralPathWithSchemaString
| Position: | 1 |
| Kötelező: | True |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
JsonPathWithSchemaString
| Position: | 1 |
| Kötelező: | True |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
-SchemaFile
A JSON-bemenet ellenőrzéséhez használt sémafájlt adja meg. Használat esetén a Test-Json csak akkor ad vissza $true, ha a JSON-bemenet megfelel a SchemaFile paraméter által megadott fájlban meghatározott sémának.
További információ: JSON-séma.
Paramétertulajdonságok
| Típus: | String |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
JsonStringWithSchemaFile
| Position: | 1 |
| Kötelező: | True |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
JsonLiteralPathWithSchemaFile
| Position: | 1 |
| Kötelező: | True |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
JsonPathWithSchemaFile
| Position: | 1 |
| Kötelező: | True |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
CommonParameters
Ez a parancsmag a következő gyakori paramétereket támogatja: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction és -WarningVariable. További információért lásd about_CommonParameters.
Bevitelek
String
Ehhez a parancsmaghoz JSON-sztringet csövezhet.
Kimenetek
Boolean
Ez a parancsmag $true ad vissza, ha a JSON érvényes, és egyébként $false.
Jegyzetek
A PowerShell a PowerShell a Newtonsoft.Json szerelvényeket használja JSON-függvényekhez. A Newtonsoft implementációja számos JSON-bővítményt tartalmaz, például a megjegyzések támogatását és az egyszeri idézőjelek használatát. A funkciók teljes listáját a Newtonsoft dokumentációjában találja https://www.newtonsoft.com/json.
A PowerShell 7.4-től kezdődően Test-JsonSystem.Text.Json használ JSON-elemzéshez, és JsonSchema.NET a sémaérvényesítéshez.
Ezekkel a módosításokkal Test-Json:
- A továbbiakban nem támogatja a Piszkozat 4 sémáit
- Csak a szigorúan megfelelő JSON-t támogatja
A Newtonsoft.Json és a System.Text.Json közötti különbségek teljes listáját a Migrálás Newtonsoft.Json-ból System.Text.Json.
A JSON-séma specifikációiról további információt a JSON-Schema.orgdokumentációjában talál.