问题描述
以下是我需要传递给API的键值对。不知道我在哪里错
$Body = @{
hostName = 'null'
hostOperatingSystem = 0
optionalFilter1 = 'null'
optionalFilter2 = 'null'
description = 'null'
serviceName = "ServiceManager.Logging"
sectionName = "Services"
signature = 'null'
value = @( @{
Services = @( @{
FullPath = "..\Service\MicroService.exe"
InstanceCount = 2
})
})
} | ConvertTo-Json -Depth 4
$Response = Invoke-RestMethod -Uri $URI -Method PUT -Headers $Headers -Body $Body -ContentType 'application/json'
以下是我遇到的错误
Invoke-RestMethod : {"":["JsonToken Endarray is not valid for closing JsonType Object. Path '',line 14,position 15."],"value":["Unexpected character encountered while parsing value: [. Path 'value',line 5,position 15."]}
解决方法
$Body = @{
hostName = '';
hostOperatingSystem = 0;
optionalFilter1 = '';
optionalFilter2 = '';
description = '';
serviceName = "ServiceManager.Logging";
sectionName = "Services";
signature = 'null';
value = '{"Services": [{"Fullpath":"..\\MicroService.exe","InstanceCount": 2}]}'
} | ConvertTo-Json -Depth 10
这是正确的格式