JSONデータでjqを使用して整数をドルに変換する方法は?

JSONデータでjqを使用して整数をドルに変換する方法は?

このようなデータがあります。

{
  "dateCreated": "2020-06-12",
  "status": "pending",
  "depositDate": "2020-06-15",
  "amount": 41237
}
{
  "dateCreated": "2020-06-05",
  "status": "paid",
  "depositDate": "2020-06-08",
  "amount": 37839
}
{
  "dateCreated": "2020-04-02",
  "status": "paid",
  "depositDate": "2020-04-03",
  "amount": 67
}

形式はjq次のとおりです。

 request-some-api | jq '.data[] | {dateCreated: .created | strftime("%Y-%m-%d"), status: .status, depositDate: .arrival_date | strftime("%Y-%m-%d"), amount: .amount,}'

.amount小数点以下の桁数を使用して、セントではなくドルの金額で値を表示するように変更したいのですが...

{
  "dateCreated": "2020-06-12",
  "status": "pending",
  "depositDate": "2020-06-15",
  "amount": $412.37
}
{
  "dateCreated": "2020-06-05",
  "status": "paid",
  "depositDate": "2020-06-08",
  "amount": $378.39
}
{
  "dateCreated": "2020-04-02",
  "status": "paid",
  "depositDate": "2020-04-03",
  "amount": $.67
}

...しかし、これに関する文書が見つかりませんでしたか?jqこのような変換は可能ですか?記号がなくても、ドルとセントの間に数字$だけを追加すると.便利です。

ベストアンサー1

このように:

jq '.amount = "$" + (.amount/100|tostring)' file.json

出力

{
  "dateCreated": "2020-06-12",
  "status": "pending",
  "depositDate": "2020-06-15",
  "amount": "$412.37"
}
{
  "dateCreated": "2020-06-05",
  "status": "paid",
  "depositDate": "2020-06-08",
  "amount": "$378.39"
}
{
  "dateCreated": "2020-04-02",
  "status": "paid",
  "depositDate": "2020-04-03",
  "amount": "$0.67"
}

おすすめ記事