次のようなJSONファイルがあります。
{
"body": {
"mode": "raw",
"raw": "{\n \"id\": \"middleware://so/998655555{{sguid}}\",\n \"reference\": \"998655555{{sguid}}\",\n \"branchCode\": \"1234\"\n }"
}
}
ここで、たとえば「branchCode」の値を出力したいと思います。
次のPowerShellコマンドで試してみました。
$path = "file.json"
$raw = Get-Content $path -raw
$obj = ConvertFrom-Json $raw
$obj.body.raw.branchCode
残念ながら、私は価値を得ることができません。PowerShellには、生のjsonから値を取得する際に問題があるようです。
誰かが私を助けてくれたらとても嬉しいです。
「raw」の値自体はJSONです。
JSONから2回変換する必要があります。
$data = Get-Content "file.json" -Raw -Encoding UTF8 | ConvertFrom-Json
$body = $data.body.raw | ConvertFrom-Json
$body.branchCode
プリント
1234
テキストファイルの読み取りおよび書き込みを行うときは、常に明示的にエンコーディングを指定する必要があることに注意してください。JSONの目的(そして率直に言って、他のほとんどすべての目的)には、UTF-8が適切な選択です。
残念ながらGet-Content
/Set-Content
デフォルトではUTF-8にしないでください。テキストファイルを操作するときは常にエンコーディングを指定することで、問題を回避できます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加