Decoding JSON and a base64-encoded value in a shell script

Using jq and base64:

jq -r '.[].Value' < file.json | base64 --decode

jq has recently added support for base64 encoding and decoding


The input is converted to base64 as specified by RFC 4648.


The inverse of @base64, input is decoded as specified by RFC 4648. Note: If the decoded string is not UTF-8, the results are undefined.

For your data, the command would be

jq -r 'map(.Value | @base64d)' < file.json

It's not released yet, but you can install the latest development version to use it.

brew reinstall --HEAD jq

Once the next version of jq is released then you can switch back to the latest stable version.