如何正确格式化PSObject以传递给InvokeRest方法的PUT方法

问题描述

以下是我需要传递给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

这是正确的格式

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...