2016-07-28 9 views
0

どのようにjq '。' jsonを解析して表示しますか?jq 'とは何ですか?'行う?

私はJSONがXXXX」の背後にある実装でどのような解析され、正しく

diplayedされる参照

curl 'https://api.github.com/repos/stedolan/jq/commits?per_page=5' | jq '.' 

| JQ '' "

どうすればわかりますか? the documentation

から

答えて

3

.

絶対最も簡単な(そして最も興味深い)フィルタが.あります。これは入力を受け取り、出力としてそのまま出力するフィルタです。

デフォルトでは、jqはすべての出力をきれいに印刷するので、この簡単なプログラムは、例えばcurlからJSON出力をフォーマットするのに便利な方法です。

+0

jqは最初にJSONを解析し、解析されたバージョンをきれいに印刷します。これは特に、数字の最初の表現が失われることを意味します。 – peak

+0

@peak:「数字の初期表現」とはどういう意味ですか? –

+0

入力表現。たとえば、1.0e1000になると考えてください。 – peak

2

jqプログラミング言語では、.はフィルタの暗黙的な入力を指します。たとえば、def f: .;は、その暗黙の入力をそのまま出力する関数fを定義します。

フィルタの引数の中で、フィルタは.が参照するものを変更できます。たとえば、map(f)[.[] | f]と定義されています。 jqプログラム[1, 2, 3] | map(. + 1).は配列の要素のそれぞれを指します。

0

jq .出力に加えて、入力ファイルを解析できない場合は警告も出力されます。このように、未知のJSONファイルをテストして、ソースファイルに構文上の問題があるかどうかを確認すると便利です。

関連する問題