2016-10-27 7 views
0

PowerShellを使用してPSObjectとして返されるJSONコンテンツを取得していますので、オブジェクトのプロパティの値を呼び出すときに呼び出すことで値を取得できます変数のように:PowerShellのPSObjectにプロパティのサブプロパティを追加します

$endpoint.authorization 

しかし、私はのように見える終わるために、既存の認可プロパティの内部に新しいプロパティを追加したい:私は、パイプ変数を持つ私ができることを考え出した

$endpoint.authorization.parameters.username 

SelectコマンドレットとAdd-Memberコマンドレットが、何もしないように見えます私が元の変数を再び呼び出すとき。私はコードの行の後にそれをチェックしたときにエンドポイントの変数に変更するようだ

$endpoint | Select -Property "authorization" | Add-Member -NotePropertyName "parameters.username" -NotePropertyValue "test" 

、何も:ここでは私のコードは次のようになります。私が紛失している単純なものがなければなりませんが、既存のプロパティのサブプロパティとして新しいプロパティを追加する方法についてのアイデアはありますか?

答えて

1

選択すると、指定したプロパティだけで新しい[PSCustomObject]が作成され、プロパティを追加してから放棄します。

$endpoint = "{'authorization':{}}" | ConvertFrom-Json 
$endpoint.authorization | Add-Member -NotePropertyName parameters -NotePropertyValue ([PSCustomObject]@{}) 
$endpoint.authorization.parameters | Add-Member -NotePropertyName username -NotePropertyValue test 

PS D:\> $endpoint 

authorization                          
-------------                          
@{parameters=}                         



PS D:\> $endpoint.authorization 

parameters                          
----------                          
@{username=test}                         



PS D:\> $endpoint.authorization.parameters 

username                           
--------                           
test                            



PS D:\> $endpoint.authorization.parameters.username 
test 

PS D:\> 

それともあなたが欲しいものを構築することにより、一度にそれを行うことができます:プロパティを参照

はあなたが承認プロパティに何かを追加する必要があるので、そのために何かを追加し、値を返します。追加する、それを追加する、例えば

$endpoint = "{'authorization':{}}" | ConvertFrom-Json 
$endpoint.authorization | Add-Member -NotePropertyName parameters -NotePropertyValue ([PSCustomObject]@{'username'='test'}) 

ヘルプリンク(利用可能な場合):

  • ConvertFrom-JSONは(モジュールMicrosoft.PowerShell.Utilityに)ConvertFrom-Jsonある
  • 追加-メンバーをモジュールに(Add-MemberありますMicrosoft.PowerShell.Utility)
+0

これはaweso私、TessellatingHeckler !! – Sachi