PowershellでJSON形式のオブジェクトから Select を利用して特定の項目だけを表示することを試してみました。
Select を利用して特定の項目だけを表示させる
今回は以下のjson形式で書かれた内容から名前(name)と id の一覧だけを表示させてます。
・hogehoge.txt
{
"title": "hogehoge",
"values": [
{
"name": "hoge01",
"id": "001",
"properties": {
"Number": "0001",
"animal": [
"cat",
"monkey",
"elephant"
],
"location": [
"Australia",
"Japan",
"China"
]
}
},
{
"name": "hoge02",
"id": "002",
"properties": {
"Number": "0002",
"animal": [
"cat02",
"monkey02",
"elephant02"
],
"location": [
"Australia",
"Japan",
"China"
]
}
},
{
"name": "hoge03",
"id": "003",
"properties": {
"Number": "0003",
"animal": [
"cat03",
"monkey03",
"elephant03"
],
"location": [
"Australia",
"Japan",
"China"
]
}
}
]
}
コマンドと実行結果
以下のコマンドで name と id のみを表示することが可能です。
#上記のファイルの読み込み
$content_json = get-content C:\hogehoge\hogehoge.txt | ConvertFrom-json
#nameとidのみを表示
$content_json.values | Select "name","id"
・実行結果
PS C:\> $content_json.values | Select "name","id"
name id
---- --
hoge01 001
hoge02 002
hoge03 003
PS C:\>
[参考] animal と location を表示させる
上記の内容の中から今度は animal と location を表示させてみます。
その場合には以下のようにコマンドを実行します。
PS C:\> $content_json.values.properties | Select "animal","location"
animal location
------ --------
{cat, monkey, elephant} {Australia, Japan, China}
{cat02, monkey02, elephant02} {Australia, Japan, China}
{cat03, monkey03, elephant03} {Australia, Japan, China}
PS C:\>
animal と location には複数の値が格納されているのでリスト形式で表示されます。