Test-Json
Menguji apakah string adalah dokumen JSON yang valid
Sintaks
Test-Json
[-Json] <String>
[<CommonParameters>]
Test-Json
[-Json] <String>
[[-Schema] <String>]
[<CommonParameters>]
Test-Json
[-Json] <String>
[-SchemaFile <String>]
[<CommonParameters>]
Deskripsi
Test-Json
Cmdlet menguji apakah string adalah dokumen JavaScript Object Notation (JSON) yang valid dan dapat secara opsional memverifikasi bahwa dokumen JSON terhadap skema yang disediakan.
String terverifikasi kemudian dapat digunakan dengan ConvertFrom-Json
cmdlet mengonversi string berformat JSON ke objek JSON, yang mudah dikelola di PowerShell atau dikirim ke program atau layanan web lain yang mengakses input JSON.
Banyak situs web menggunakan JSON alih-alih XML untuk menserialisasikan data untuk komunikasi antara server dan aplikasi berbasis web.
Cmdlet ini diperkenalkan di PowerShell 6.1
Contoh
Contoh 1: Uji apakah objek adalah JSON yang valid
Contoh ini menguji apakah string input adalah dokumen JSON yang valid.
'{"name": "Ashley", "age": 25}' | Test-Json
True
Contoh 2: Menguji objek terhadap skema yang disediakan
Contoh ini mengambil string yang berisi skema JSON dan membandingkannya dengan string input.
$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:
Line |
35 | '{"name": "Ashley", "age": "25"}' | Test-Json -Schema $schema
| ~~~~~~~~~~~~~~~~~~~~~~~~~
| IntegerExpected: #/age
False
Dalam contoh ini, kami mendapatkan kesalahan karena skema mengharapkan bilangan bulat untuk usia tetapi input JSON yang kami uji menggunakan nilai string sebagai gantinya.
Untuk informasi selengkapnya, lihat Skema JSON.
Contoh 3: Menguji objek terhadap skema dari file
Skema JSON dapat mereferensikan definisi menggunakan $ref
kata kunci. $ref
dapat mengatasi URI yang mereferensikan file lain. Parameter SchemaFile menerima jalur harfiah ke file skema JSON dan memungkinkan file JSON divalidasi terhadap skema tersebut.
Dalam contoh ini, file mereferensikan schema.json
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
Untuk informasi selengkapnya, lihat Menyusun skema yang kompleks.
Parameter
-Json
Menentukan string JSON yang akan diuji validitasnya. Masukkan variabel yang berisi string, atau ketik perintah atau ekspresi yang mendapatkan string. Anda juga dapat menyalurkan string ke Test-Json
.
Parameter Json diperlukan.
Type: | String |
Position: | 1 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Schema
Menentukan skema untuk memvalidasi input JSON. Jika diteruskan, Test-Json
memvalidasi bahwa input JSON sesuai dengan spesifikasi yang ditentukan oleh parameter Skema dan mengembalikan $true
hanya jika input sesuai dengan skema yang disediakan.
Untuk informasi selengkapnya, lihat Skema JSON.
Type: | String |
Position: | 2 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SchemaFile
Menentukan file skema yang digunakan untuk memvalidasi input JSON. Saat digunakan, Test-Json
mengembalikan $true
hanya jika input JSON sesuai dengan skema yang ditentukan dalam file yang ditentukan oleh parameter SchemaFile .
Untuk informasi selengkapnya, lihat Skema JSON.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Input
Anda dapat menyalurkan string JSON ke cmdlet ini.
Output
Boolean
Cmdlet ini mengembalikan $true
jika JSON valid dan sebaliknya $false
.
Catatan
Test-Json
Cmdlet diimplementasikan menggunakan Kelas NJsonSchema.
Sejak PowerShell 6, PowerShell menggunakan rakitan Newtonsoft.Json untuk semua fungsi JSON. Implementasi Newtonsoft mencakup beberapa ekstensi ke standar JSON, seperti dukungan untuk komentar dan penggunaan tanda kutip tunggal. Untuk daftar lengkap fitur, lihat dokumentasi Newtonsoft di https://www.newtonsoft.com/json.
Link Terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk