Quando si scrive uno script PowerShell con un ConvertFrom-Json, sembra che i valori negli array vengano convertiti con spazi aggiuntivi quando li si esegue in una stringa. Il codice seguente mostra questo in un esempio di codice piccolo:PowerShell ConvertFrom-Json con matrici aggiunge spazi aggiuntivi a un valore di matrice
$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"""
uscita:
value
value
"value"
"value "
Dove sono gli spazi in più provenienti dalla nell'ultimo valore? Quando si aggiungono più coppie di valori all'array, vengono aggiunti più spazi.
Se si imposta $ OFS su "" (stringa nulla) influisce sull'output? – mjolinor
Sì, funziona idd, ma perché gli spazi sono stati aggiunti? – Peter
Non posso dirlo con certezza, ma sembra che l'intero array sia lanciato su [stringa] sotto le coperte, a giudicare dai sintomi. $ OFS è una variabile automatica che specifica un separatore che verrà utilizzato per separare gli elementi dell'array quando l'array viene castato su [stringa]. L'impostazione predefinita è un singolo spazio. Impostarlo su null ha eliminato gli spazi. – mjolinor