検証用のサンプルデータを用意したい場合、世の中に求めている形式でデータがあれば良いのですが、CSV 形式のデータは見つかったが JSON 形式のデータは見つからなかった、などは悩みどころです。プログラムが書けるので CSV ファイルを読み込みパースして、JSON 形式で出力するば良いのですが、データ形式をシンプルに変換する方法は無いかと探したところ、Powershell のコマンドがありました。という事で、CSV 形式のファイルから JSON 形式のファイルを作成するシンプルな方法を試してみました。
CSV サンプルデータを用意
input.csv というファイル名で用意します。
no,name,type,price
1,リンゴ,果物,150
2,バナナ,果物,80
3,オレンジ,果物,120
4,白菜,野菜,50
5,キャベツ,野菜,60
6,玉ねぎ,野菜,40
7,牛肉,肉類,500
8,豚肉,肉類,300
9,鶏肉,肉類,400
10,牛乳,乳製品,200
Powershell コマンドを実行
Get-Content input.csv | ConvertFrom-Csv | ConvertTo-Json > output.json
作成された JSON を確認
output.json をエディタで開きます。
[
{
"no": "1",
"name": "リンゴ",
"type": "果物",
"price": "150"
},
{
"no": "2",
"name": "バナナ",
"type": "果物",
"price": "80"
},
{
"no": "3",
"name": "オレンジ",
"type": "果物",
"price": "120"
},
{
"no": "4",
"name": "白菜",
"type": "野菜",
"price": "50"
},
{
"no": "5",
"name": "キャベツ",
"type": "野菜",
"price": "60"
},
{
"no": "6",
"name": "玉ねぎ",
"type": "野菜",
"price": "40"
},
{
"no": "7",
"name": "牛肉",
"type": "肉類",
"price": "500"
},
{
"no": "8",
"name": "豚肉",
"type": "肉類",
"price": "300"
},
{
"no": "9",
"name": "鶏肉",
"type": "肉類",
"price": "400"
},
{
"no": "10",
"name": "牛乳",
"type": "乳製品",
"price": "200"
}
]
やってみて分かった事
Powershell のコマンドは、Get-Content で CSV ファイルの中身を読み込み、次に CSV 形式のオブジェクトデータに変換して、その後 JSON 形式のテキストに変換しており、データ量が少ない場合は気にならないのですが、データ量が多いと少々時間がかかります。データ量が多い場合は、プログラムを書いた方が良さそうな気がしました。