我有一个转换为json的数组。但我希望数组中的每个对象都被另一个字段包装。
$Array =
Field1; Field2
-----------------
Value11; Value12
Value21; Value22
如果我将该数组转换为JSON,它看起来像这样:
Array
[
{
"Field1": "Value11",
"Field2": "Value12"
},
{
"Field1": "Value21",
"Field2": "Value22"
}
]
我希望它看起来像这样:
Array
[
{"NewWrapper":
{
"Field1": "Value11",
"Field2": "Value12"
}
},
{"NewWrapper":
{
"Field1": "Value21",
"Field2": "Value22"
}
}
]
如何格式化源或json来实现它?
答案 0 :(得分:1)
尝试以下方法:
$Array | ForEach-Object { @{ NewWrapper=$_ } } | ConvertTo-Json
@{ NewWrapper=$_ }
将每个输入对象包装在一个哈希表(@{ ... }
)中,该哈希表中唯一一个条目NewWrapper
是输入对象($_
)。
当ConvertTo-Json
序列化此哈希表时,它会产生所需的输出。
完整示例:
# Create sample input objects...
$Array = [pscustomobject] @{ Field1 = 'Value11'; Field2 = 'Value12' },
[pscustomobject] @{ Field1 = 'Value21'; Field2 = 'Value12' }
# ... wrap them, and convert them to JSON.
$Array | ForEach-Object { @{ NewWrapper=$_ } } | ConvertTo-Json