dram.me

SQLite3、JSON和jq

jq是较为流行的一个JSON处理命令行工具,虽然功能强大,但命令语法有一定的学习门槛,并且可记忆性不强。而SQLite3对JSON有较好的支持,很多时候,完全可以用SQLite3替代jq。

以下为一个示例:

cat >foo.json <<EOF
[{"name": "foo"}, {"name": "bar"}]
EOF

sqlite3 :memory: <<EOF
SELECT json_extract(json_each.value, '$.name')
  FROM json_each(readfile('foo.json'))
EOF