Невозможно изменить значение вложенного свойства в пользовательском объекте PS
У меня есть пользовательский объект PS:
TourCode : s
TournamentNumber : 524
TournamentName : Mitsubishi Electric Championship at Hualalai
EnvironmentType : PGA Tour
TournamentRootPath : /mitsubishi-electric-championship-at-hualalai
SValues : {@{S1=championstour; S2=tournaments; S3=mitsubishi-electric-championship-at; S4=}}
Я могу легко изменить значения свойств верхнего уровня, таких как TourCode или TournamentName:
PS C:\Users\yuriy> $testTournament.TourCode = 'r'
PS C:\Users\yuriy> $testTournament
TourCode : r
TournamentNumber : 524
TournamentName : Mitsubishi Electric Championship at Hualalai
EnvironmentType : PGA Tour
TournamentRootPath : /mitsubishi-electric-championship-at-hualalai
SValues : {@{S1=championstour; S2=tournaments; S3=mitsubishi-electric-championship-at; S4=}}
Но я застреваю, получая странное сообщение об ошибке при попытке изменить свойства S1, S2, S4 или S4 в свойстве SValues:
PS C:\Users\yuriy> $testTournament.SValues.S3 = 'newvalue'
The property 'S3' cannot be found on this object. Verify that the property exists and can be set.
At line:1 char:1
+ $testTournament.SValues.S3 = 'newvalue'
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : PropertyAssignmentException
Почему он говорит, что не может найти недвижимость? Я могу легко получить его значение, ссылаясь на это так:
PS C:\Users\yuriy> $testTournament.SValues.S3
mitsubishi-electric-championship-at
Что я делаю неправильно?
UPD: вывод gm -i $testTournament.SValues показан на скриншоте: http://i.imgur.com/BeRr2aJ.png снимке экрана показан фрагмент JSON: http://i.imgur.com/BBK2nsi.png (похожие данные) Файл JSON читается и преобразуется с использованием этого кода:
$testData = Get-Content -Raw -Path "Test Data.json" | ConvertFrom-Json
Затем создается $ testTournament:
$testTournament = $testData.Tournaments | Get-Random