私は巨大なJSONオブジェクトを持っています。利用可能なフィールドのうち、小さな%に、それをフィルタリングしたいと思います。私はenter link description hereのようないくつかの同様の質問を検索しましたが、それはオブジェクトの配列のためです。だから、効果的にデータを絞り込むJQを使用してJSONからキーをフィルタリングするにはどうすればよいですか?
{
"timestamp":1455408955250999808,
"client":
{
"ip":"76.72.172.208",
}
"clientRequest":
{
"bytes":410
}
}
:私は何をしようとしていることが好きに見える新しいJSONオブジェクトを作成している
{
"timestamp":1455408955250999808,
"client":
{
"ip":"76.72.172.208",
"srcPort":0,
"country":"us",
"deviceType":"desktop"},
"clientRequest":
{
"bytes":410,
"bodyBytes":0}
}
:私はのようになりますJSONオブジェクトを持っています。 | jq 'map({client.ip: .client.ip, timestamp: .timestamp})'
をし、私が取得し続ける:私が試した
jq: error (at <stdin>:0): Cannot index number with string "client"
も、最も簡単な| jq 'map({timestamp: .timestamp})'
は同じエラーを示しています。
私はK、Vのペアにアクセスして、上のリンクの質問で彼の配列のために人がしたようにマップ機能を使用すると思った。どんな助けでも大歓迎です。
初期の '.'は必要ありません。ここでは「Id:.Id」は「Id」に省略することができます。したがって: 'jq '{Id、client:{ip:.client.ip}}'で十分でしょう。 – peak