从JSON转换成韩元';使用WebServiceProxy时,不接受子级转换为json
我正在使用PowerShell 4.0中的新WebServiceProxy从API中提取数据,然后将其输出到JSON文件,以便在另一个API服务(相同的API版本等,只是不同的主机)上进行查看和导入 给我包含TaskConfig的XML。在本例中,TaskConfig是由我所使用的API自动生成的对象类型。当我想导入我正在使用的内容时:从JSON转换成韩元';使用WebServiceProxy时,不接受子级转换为json,json,powershell,new-webserviceproxy,Json,Powershell,New Webserviceproxy,我正在使用PowerShell 4.0中的新WebServiceProxy从API中提取数据,然后将其输出到JSON文件,以便在另一个API服务(相同的API版本等,只是不同的主机)上进行查看和导入 给我包含TaskConfig的XML。在本例中,TaskConfig是由我所使用的API自动生成的对象类型。当我想导入我正在使用的内容时: $taskconfig = (Get-Content "$taskjson") -join "`n" | ConvertFrom-Json 但是当我
$taskconfig = (Get-Content "$taskjson") -join "`n" | ConvertFrom-Json
但是当我运行这个程序时,它无法创建对象。我假设这是因为JSON包含嵌套的子项,并给出错误-
无法将值“@{Name=plugindive;value=;>Children=System.Object[]}”转换为类型“Microsoft.PowerShell.Commands.NewWebserviceProxy.AutogeneratedTypes.WebServiceProxy 1RCleWeb_WebClientAPI_asmx_wsdl.TaskConfig”。错误:“无法将类型为“System.Management.Automation.PSCustomObject”的“@{Name=plugindive;Value=;Children=System.Object[]}”值转换为类型为“Microsoft.PowerShell.Commands.NewWebserviceProxy.AutogeneratedTypes.WebServiceProxy1RCleWebWebClientAPI_asmx_wsdl.TaskConfig”。”
我试着解释一下对象的类型:
$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示例
这似乎在PowerShell v3.0中不起作用,所以我只是直接使用显式XML发布,而不是转换为JSON 这似乎在PowerShell v3.0中不起作用,所以我只是直接用显式XML发表文章,而不是转换为JSON 您说您正在转换为JSON,但实际上您的示例具有
converttoxml
。你能分享这个JSON文件吗(先清理一下)。@FoxDeploy——当然,你是100%对的——这将教会我在复制和粘贴时要注意。我将很快添加JSON示例……您能否将整个(经过净化的)JSON文件发布到一个秘密要点上,并在此处发布链接,以便我可以查找格式问题?我认为在处理过程中出现了一些问题。@FoxDeploy-当然可以-(很抱歉延迟!)。您说您正在转换为JSON,但实际上您的示例功能是转换为Xml
。你能分享这个JSON文件吗(先清理一下)。@FoxDeploy——当然,你是100%对的——这将教会我在复制和粘贴时要注意。我将很快添加JSON示例……您能否将整个(经过净化的)JSON文件发布到一个秘密要点上,并在此处发布链接,以便我可以查找格式问题?我认为在处理过程中出现了一些问题。@FoxDeploy-当然可以-(抱歉耽搁!)。
$taskconfig.children = $json.children
{"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": [
]
}
]
}
]
}