created: 2022-01-30T05:23:12.000Z

jq で CSV を JSON に変換する

こんなCSVをJSONにする。

1,foo
2,bar

id,name の2カラムのCSVとみなすとこのようになる。

$ cat /tmp/_ \
    | jq --raw-input 'split(",") | {id: .[0], name: .[1]}' \
    | jq -s
{
  "id": "1",
  "name": "foo"
}
{
  "id": "2",
  "name": "bar"
}

--raw-input がミソになっていて、これをつけないと不正な入力として扱われる。 --raw-input をつけると文字列として扱われるので split などの関数でハンドリングすることができる。

単体テストの考え方/使い方
[ad] 単体テストの考え方/使い方
Vladimir Khorikov, 須田智之 (単行本(ソフトカバー))