2016-11-25 18 views
0

の最後の要素を取得します:私はすべてのケースでそれを確認する必要があるとして私は、このJSONファイル持っているJSONファイル

{ 
     "system.timestamp": "{system.timestamp}", 
     "error.state": "{error.state}", 
     "system.timestamp": "{system.timestamp}", 
     "error.state": "{error.state}", 
     "system.timestamp": "{system.timestamp}", 
     "error.state": "{error.state}", 
     "error.content": "{custom.error.content}" 
} 

を私はJSONファイルの最後のオブジェクトを取得したいと思い、最後のオブジェクトがありますerror.content。添付されたコード部分は単なるサンプルファイルであり、実際に生成されるすべてのファイルには少なくとも40〜50個のオブジェクトが含まれているので、最後のオブジェクトがerror.contentであることを確認する必要があります。

jq '. | length'を使用して長さを計算しました。 Linuxでjqコマンドを使用するにはどうすればよいですか?

注:配列のないプレーンなJSONファイルです。重複キーを持つ

+1

これはJSONではありません...まあ、技術的に私はあなたが言うことができると思います。しかし、多くの重複キーを持つオブジェクトを持つことは実質的に無益です。自己尊重のJSONパーサは、重複したプロパティを削除/上書きします。あなたはその状態でそれを使って作業しようとするよりも、それを修正する方が良い方法です。 –

答えて

1

オブジェクトが--streamオプション、例えば使用JQで扱うことができます。

:大きなファイルの場合

$ jq -s --stream '.[length-2] | { (.[0][0]): (.[1]) }' input.json 
{ 
    "error.content": "{custom.error.content}" 
} 

を、入力ファイルを「ズルズル」回避として、以下は、おそらく良いだろう

$ jq 'first(tostream) | {(.[0][0]): .[1]} ' input.json 
関連する問題