ConvertFrom-Jsonでpowershellスクリプトを書くとき、配列の値は文字列にキャストするときに追加のスペースで変換されるようです。次のコードは、小さなコードサンプルでこれを示していますPowershell ConvertFrom-Jsonで配列を追加すると、配列の値に余分なスペースが追加されます
$object = @"
{
"object":
{
"prop1": "value",
"array":[
{ "key": "value"},
{ "key2": "valuevalue"},
{ "key3": "valuevalue"},
{ "key4": "valuevalue"},
{ "key5": "valuevalue"}
]
}
}
"@ | ConvertFrom-Json
$object.object.prop1
$object.object.array.key
$t = $object.object.prop1
$t2= $object.object.array.key
"""$t"""
"""$t2"""
出力:余分なスペースが最後の値にから来ている
value
value
"value"
"value "
?配列に値のペアを追加すると、スペースが追加されます。
$ OFSを ''(ヌル文字列)に設定すると、出力に影響しますか? – mjolinor
はい、それは動作しますが、なぜスペースが追加されますか? – Peter
確かに言うことはできませんが、症状によって判断して、配列全体がカバーの下の[string]にキャストされているように見えます。 $ OFSは、配列が[文字列]にキャストされたときに配列要素を区切るために使用される区切り文字を指定する自動変数です。デフォルトは1つのスペースです。 nullに設定すると、空白がなくなりました。 – mjolinor