Test-Json
Проверяет, является ли строка допустимым документом JSON
Синтаксис
Test-Json
[-Json] <string>
[[-Schema] <string>]
[<CommonParameters>]
Описание
Командлет Test-Json
проверяет, является ли строка допустимым документом нотации объектов JavaScript (JSON) и при необходимости может проверить, что документ JSON соответствует предоставленной схеме.
Затем проверенную строку можно использовать с ConvertFrom-Json
командлетом для преобразования строки в формате JSON в объект JSON, который легко управляется в PowerShell или отправляется в другую программу или веб-службу, обращающуюся к входным данным JSON.
Многие веб-сайты используют нотацию JSON вместо XML для сериализации данных для взаимодействия между серверами и веб-приложениями.
Этот командлет впервые появился в PowerShell 6.1
Примеры
Пример 1. Проверка допустимости объекта JSON
В этом примере проверяется, является ли входная строка допустимым документом JSON.
"{'name': 'Ashley', 'age': 25}" | Test-Json
True
Пример 2. Тестирование объекта на соответствие предоставленной схеме
В этом примере берется строка, содержащая схему JSON, и сравнивается с входной строкой.
$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
В этом примере мы получаем ошибку, так как схема ожидает целое число для возраста , но входные данные JSON, которые мы протестировали, используют строковое значение.
Дополнительные сведения см. в разделе "Схема JSON".
Параметры
-Json
Указывает строку JSON для проверки на допустимость. Введите переменную, содержащую строку, либо введите команду или выражение для получения строки. Вы также можете передать строку в Test-Json
.
Требуется параметр Json .
Type: | String |
Position: | 1 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Schema
Указывает схему для проверки входных данных JSON. Если передано Test-Json
, входные данные Json соответствуют спецификации, заданной параметром схемы , и возвращаются $True
только в том случае, если входные данные соответствуют предоставленной схеме.
Дополнительные сведения см. в разделе "Схема JSON".
Type: | String |
Position: | 2 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Входные данные
Строку JSON Test-Json
можно передать в .
Выходные данные
Boolean
Примечания
Командлет Test-Json
реализуется с помощью класса NJsonSchema.