ここに私のData.jsonがあります。それはマルチレベルの配列を持っています。私はすべての配列要素を取得する必要があります。マルチレベルJSON配列を解析する方法は?
{
"host": "http://localhost:5000",
"dlls": [
{
"files": [
{
"path": ".\\Xml.dll",
"store": ".\\DX\\OpenXml.dll"
},
{
"path": ".\\Xml.dll",
"store": ".\\DX\\OpenXml.dll"
},
{
"path": ".\\Xml.dll",
"store": ".\\DX\\OpenXml.dll"
},
{
"path": ".\\Xml.dll",
"store": ".\\DX\\OpenXml.dll"
},
{
"path": ".\\Xml.dll",
"store": ".\\DX\\OpenXml.dll"
}
]
},
{
"json": [
{
"path": ".\\index.json",
"store": ".\\DX\\index.json"
},
{
"path": ".\\index.json",
"store": ".\\DX\\index.json"
},
{
"path": ".\\index.json",
"store": ".\\DX\\index.json"
},
{
"path": ".\\index.json",
"store": ".\\DX\\index.json"
},
{
"path": ".\\index.json",
"store": ".\\DX\\index.json"
},
{
"path": ".\\index.json",
"store": ".\\DX\\index.json"
}
]
}
]
}
私の現在のPSスクリプトでは、私は一度繰り返すことができます:
$json = $null;
$jsonparsed = $null;
$validJson = $false;
try {
$json = Get-Content -Raw $file;
$jsonparsed = ConvertFrom-Json $json -ErrorAction Stop;
$validJson = $true;
} catch {
$validJson = $false;
}
if ($validJson) {
Write-Host "Provided text has been correctly parsed to JSON";
Write-Host $jsonparsed;
} else {
Write-Host "Provided text is not a valid JSON string" -ForegroundColor "Red";
return;
}
を私はすべてのJSONの配列要素を解析する必要があります。各「パス」と「ストア」の値を取得します。 PowerShellバージョン5でどうすればいいですか?私はサードパーティのアセンブリを読み込んで解決策を見つけました。しかし、私は外部のアセンブリを使用することはできません。それは外部のアセンブリなしで解析可能ですか?
は 'ConvertFrom-Json'は' PSCustomObject'を返しませんか?メンバーを解析するだけです。 – TheIncorrigible1
代わりにどのような出力を期待していますか? – iRon
これを探していますか? '$ jsonparsed | flatten'を参照してください:Flatten-Object:https://powersnippets.com/flatten-object/ – iRon