У меня огромный объект JSON, и я хочу отфильтровать его до небольшого% доступных полей. Я искал некоторые похожие вопросы, такие как enter link description here, но это для массива объектов. У меня есть объект JSON, который выглядит примерно так:Как фильтровать ключи от JSON с помощью JQ?
{
"timestamp":1455408955250999808,
"client":
{
"ip":"76.72.172.208",
"srcPort":0,
"country":"us",
"deviceType":"desktop"},
"clientRequest":
{
"bytes":410,
"bodyBytes":0}
}
То, что я пытаюсь сделать, это создать новый объект JSON, который выглядит любит:
{
"timestamp":1455408955250999808,
"client":
{
"ip":"76.72.172.208",
}
"clientRequest":
{
"bytes":410
}
}
Так эффективно отфильтровывать данные. Я пробовал: | 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