我有一个类型 FooObject 我有一个从a序列化的JSON文件 FooObject 实例。现在我想用 ConvertFrom-Json 将JSON文件加载到内存并将命令的输出转换为 FooObject 对象,然后在cmdlet中使用新对象 Set-Bar 只接受 FooObject 作为参数类型。
但我注意到了输出类型 ConvertFrom-Json 是 PSCustomObject 我没有找到任何转换方式 PSCustomObject 至 FooObject。
尝试将自定义对象强制转换为 FooObject:
$foo = [FooObject](Get-Content 'C:\path\to\your.json' | Out-String | ConvertFrom-Json)
如果这不起作用,尝试构建 FooObject 具有输入对象属性的实例(假设类具有类似的构造函数):
$json = Get-Content 'C:\path\to\your.json' | Out-String | ConvertFrom-Json
$foo = New-Object FooObject ($json.Foo, $json.Bar, $json.Baz)
如果这也不起作用,则需要创建一个空的 FooObject 实例并在之后更新其属性:
$json = Get-Content 'C:\path\to\your.json' | Out-String | ConvertFrom-Json
$foo = New-Object FooObject
$foo.AA = $json.Foo
$foo.BB = $json.Bar
$foo.CC = $json.Baz
尝试将自定义对象强制转换为 FooObject:
$foo = [FooObject](Get-Content 'C:\path\to\your.json' | Out-String | ConvertFrom-Json)
如果这不起作用,尝试构建 FooObject 具有输入对象属性的实例(假设类具有类似的构造函数):
$json = Get-Content 'C:\path\to\your.json' | Out-String | ConvertFrom-Json
$foo = New-Object FooObject ($json.Foo, $json.Bar, $json.Baz)
如果这也不起作用,则需要创建一个空的 FooObject 实例并在之后更新其属性:
$json = Get-Content 'C:\path\to\your.json' | Out-String | ConvertFrom-Json
$foo = New-Object FooObject
$foo.AA = $json.Foo
$foo.BB = $json.Bar
$foo.CC = $json.Baz