Podczas pisania skryptu Powerhell z ConvertFrom-Json wydaje się, że wartości w tablicach są konwertowane z dodatkowymi spacjami podczas rzutowania ich na ciąg. Poniższy kod pokazuje to w małej próbki kodu:Powershell ConvertFrom-Json z tablicami dodaje dodatkowe spacje do wartości tablicy
$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"""
wyjściowa:
value
value
"value"
"value "
Gdzie są dodatkowe przestrzenie w pochodzące z ostatniej wartości? Podczas dodawania kolejnych par wartości do tablicy dodawane są kolejne spacje.
Jeśli ustawisz $ OFS na '' (łańcuch zerowy), czy ma to wpływ na wynik? – mjolinor
Tak, działa idd, ale dlaczego są dodawane spacje? – Peter
Nie mogę powiedzieć na pewno, ale wygląda na to, że cała tablica jest rzutowana na [napis] pod okładkami, sądząc po objawach. $ OFS to automatyczna zmienna, która określa separator, który będzie używany do oddzielania elementów tablicy, gdy tablica jest rzutowana na [string]. Wartość domyślna to pojedyncza spacja. Ustawienie wartości null wyeliminowało spacje. – mjolinor