1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[jq] TrelloからエクスポートしたJSONファイルを整形・集計する

Posted at

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)
})
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?