ConvertFrom-JSON не будет принимать convertto-json с детьми при работе с WebServiceProxy
Я извлекаю данные из API, используя New-WebServiceProxy в PowerShell 4.0, а затем передаю их в файл JSON для просмотра и импорта в другой службе API (той же версии API и т. Д., Просто на другом хосте).
$tasklist.Taskconfig | ConvertTo-JSON-Depth 50 -As String | Out-File -FilePath $exportpath\$name.xml -Force
Дает мне мой XML, содержащий TaskConfig. В этом случае TaskConfig - это тип объекта, автоматически генерируемый API, с которым я взаимодействую. Когда я хочу импортировать контент, который я использую:
$taskconfig = (Get-Content "$taskjson") -join "`n" | ConvertFrom-Json
но когда я запускаю это, он не может создать объект. Я предполагаю, что это потому, что JSON содержит вложенные дочерние элементы, давая
Невозможно преобразовать значение "@{Name=plugindive; Value=;> Children=System.Object[]}" в тип "Microsoft.PowerShell.Commands.NewWebserviceProxy.AutogeneratedTypes.WebServiceProxy1rcleWeb_WebClientAPI_asmx_wsdl.Taskfig Ошибка: "Не удалось преобразовать"@{Name=plugindive; Value=;Children=System.Object[]}"значение типа"System.Management.Automation.PSCustomObject"для ввода" Microsoft.PowerShell.Commands.NewWebserviceProxy.AutogeneratedTypes.WebServiceProxy1rcleWeb_WebClientAPI_aslx "w.sff.
Я попытался явно указать тип объекта:
$taskconfig = [Microsoft.PowerShell.Commands.NewWebserviceProxy.AutogeneratedTypes.WebServiceProxy1rcleWeb_WebClientAPI_asmx_wsdl.TaskConfig](Get-Content "$taskjson" | Out-string | ConvertFrom-Json)
а также создание объекта, а затем пытается добавить детей из моего JSON -
$taskconfig.children = $json.children
Но все они терпят неудачу одинаково.
Мне кажется, что эта проблема в PowerShell 5.0 не кажется достаточно интересной, но я не могу понять, почему - есть ли другой способ решения этой проблемы?
Добавлен пример JSON ниже
{"Name": "plugindive",
"Value": null,
"Children": [{
"Name": "auto",
"Value": "False",
"Children": [
]
},
{
"Name": "categories",
"Value": null,
"Children": [{
"Name": "Module Z",
"Value": "False",
"Children": [
]
},
{
"Name": "Module A",
"Value": "False",
"Children": [
]
},
{
"Name": "Module B",
"Value": "False",
"Children": [
]
},
{
"Name": "Module C",
"Value": "False",
"Children": [
]
}
]
}
]
}
1 ответ
Похоже, что это не работает в PowerShell v3.0, поэтому я просто закончил писать посты с явным XML напрямую, а не конвертировать в JSON.