2017-12-17 34 views
1

私はPowerShellのバージョン5を使用して、私の解析されたJSONに何かを追加したい私のコード:PowerShell解析されたJSONにさらにデータを追加する方法は?

$file = 'C:\test\data.json' 
    $json = Get-Content -Raw $file; 
    $jsonparsed = ConvertFrom-Json -InputObject $json; 

    $machineName = [System.Environment]::MachineName; 

$blockcvalue [email protected]" 
    { 
    "id": "$machineName" 
    } 
    "@ 

私のJSONデータ: - 私は次のように私のJSONにいくつかのデータを追加したい

{ 
    "path": "C:\\test\\Storage", 
    "fs": "C:\\test\\fs", 
    "serverAddresses": [ 
    "http://localhost:5000" 
    ], 
    "serverCertificate": { 
    "name": "My", 
    "location": "location" 
    } 
} 

: -

{ 
    "path": "C:\\test\\Storage", 
    "fs": "C:\\test\\fs", 
    "serverAddresses": [ 
    "http://localhost:5000" 
    ], 
    "serverCertificate": { 
    "name": "My", 
    "location": "location" 
    }, 
    "id": "MyComputerName" 
} 

"id": "MyComputerName"をJSONデータに追加するにはどうすればよいですか?

答えて

1

Convertfrom-JSONを使用した場合は、JSONファイルによって指定されたプロパティと値を持つPSCustomObjectを作成しました。これからは、JSONやテキストを変更するのではなく、PowerShellオブジェクトを変更します。

メンバーを追加するには、オブジェクトにAdd-Memberを使用します。あなたの例では、それは次のようになります。あなたがオブジェクトを変更することを今

Add-Member -InputObject $jsonparsed -MemberType NoteProperty -Name id -Value $env:COMPUTERNAME 

、あなたが戻ってJSONにそれを持っている場合があります。 Convertto-JSONを使用してこれを行うことができます。

$jsonparsed | ConvertTo-Json | Out-File 'C:\test\newdata.json' 
関連する問題