JSONファイルは cat example.json
なり第二引数に渡すなり適当に。
環境
- MacOSX 10.15.7
- jq 1.6
プロパティの絞り込み
.cards | map({id, name})
閉じていないカードの一覧
.cards | map(select(.closed|not))
閉じていないリストの一覧
.lists | map(select(.closed|not))
閉じていないリストを { [id]: name } 形式にする
.lists |
map(select(.closed|not)) |
map({key: .id, value: .name}) |
from_entries
カスタムフィールドのドロップダウンリストの一覧
名前が Size
のカスタムフィールドから、ドロップダウンの値を数値として取得する。
.customFields[] |
select(.name == "Size") |
.options |
map({key: .id, value: .value.text | tonumber}) |
from_entries
カードとリストの連結
カード一覧にリストの名前を連結する。
(
.lists |
map(select(.closed|not)) |
map({key: .id, value: .name}) |
from_entries
) as $lists |
.cards |
map(select(.closed|not)) |
map({id, name, idList, nameList: $lists[.idList]})
カスタムフィールドの集計
各リストのカードに紐づけられている Size
カスタムフィールドの値を集計する。
(
.lists |
map(select(.closed|not)) |
map({key: .id, value: .name}) |
from_entries
) as $lists |
(
.customFields[] |
select(.name == "Size")
) as $sizeCustomField |
(
$sizeCustomField.options |
map({key: .id, value: .value.text | tonumber}) |
from_entries
) as $sizeCustomFieldOptions |
.cards |
map(select(.closed|not)) |
map({
id,
name,
idList,
nameList: $lists[.idList],
size: (
.customFieldItems[] |
select(.idCustomField == $sizeCustomField.id) |
$sizeCustomFieldOptions[.idValue]
)
}) |
group_by(.idList) |
map({
idList: .[0].idList,
nameList: .[0].nameList,
size: ([.[].size]|add)
})