我有一个返回的对象
Name Value
---- -----
field_1 abc
field_2 123
我正在使用此函数创建对象:
function CreateParamFileObject($schema,$contentVersion,$parameters)
{
$obj = New-Object System.Object
$obj | Add-Member -MemberType NoteProperty -Name '$schema' -Value $schema
$obj | Add-Member -MemberType NoteProperty -Name "contentVersion" -Value $contentVersion
$obj | Add-Member -MemberType NoteProperty -Name "parameters" -Value $parameters
#foreach ($key in $obj.parameters.Keys)
#{
#}
return,$obj
“参数”参数以哈希表形式出现,如下所示:
$paramsphase1 = @{
field_1 = "abc";
field_2 =(123)
当我将其转换为JSON时,它看起来像:
"parameters": {
"field_1": "abc",
"field_2": "123",
}
我希望它看起来像这样:
"parameters": {
"field_1": {
"value": "abc"
},
"field_2": {
"value": 123
},
在Powershell中是否有更简单的方法可以做到这一点?我已经尝试了一些功能,但无法获得正确的结果。
最佳答案
这是进行转换的代码片段。
# object
$d1 = @{}
$d1.parameters = @{}
$d1.parameters.field1 = 'abc'
$d1.parameters.field2 = '123'
$d1 | ConvertTo-Json
# conversion
$d2 = @{}
$d2.parameters = @{}
foreach ($k1 in $d1.parameters.Keys)
{
$d2.parameters.$k1 = @{}
$d2.parameters.$k1.value = $d1.parameters.$k1
}
$d2 | ConvertTo-Json
关于json - 如何将Powershell中的对象拆分为正确的JSON格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42424664/