Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从JSON转换成韩元';使用WebServiceProxy时,不接受子级转换为json_Json_Powershell_New Webserviceproxy - Fatal编程技术网

从JSON转换成韩元';使用WebServiceProxy时,不接受子级转换为json

从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 但是当我

我正在使用PowerShell 4.0中的新WebServiceProxy从API中提取数据,然后将其输出到JSON文件,以便在另一个API服务(相同的API版本等,只是不同的主机)上进行查看和导入

给我包含TaskConfig的XML。在本例中,TaskConfig是由我所使用的API自动生成的对象类型。当我想导入我正在使用的内容时:

$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": [

                ]
            }
        ]
    }
]
}