使用 jq 转换 json 对象,使用 base64 解码转换值
Transform json object with jq, transforming values with base64 decode
我正在使用如下所示的 json 对象:
{
"someattrinbute": "somevalue",
"data": {
"SOMENAME": "...",
"SOMEOTHERNAME": "...",
...
}
}
其中 "data" 对象中的所有值都是 base64 编码的。我想生成相同的 json,但是 "data" 对象中的所有 属性 值都是 base64 解码的。
我相信这会涉及使用 "to_entries"、"from_entries" 和“@base64d”函数,但我看不出如何将它们打包在一起。
我将在 bash shell 脚本中执行此操作。
给定 example.json:
{
"someattrinbute": "somevalue",
"data": {
"SOMENAME": "MTIz",
"SOMEOTHERNAME": "NDU2"
}
}
调用:
$ jq '.data[] |= @base64d' example.json
产生:
{
"someattrinbute": "somevalue",
"data": {
"SOMENAME": "123",
"SOMEOTHERNAME": "456"
}
}
map_values 可用于将 @base64d
函数应用于对象的每个元素。
例如
jq '.data|map_values(@base64d)' example.json
我正在使用如下所示的 json 对象:
{
"someattrinbute": "somevalue",
"data": {
"SOMENAME": "...",
"SOMEOTHERNAME": "...",
...
}
}
其中 "data" 对象中的所有值都是 base64 编码的。我想生成相同的 json,但是 "data" 对象中的所有 属性 值都是 base64 解码的。
我相信这会涉及使用 "to_entries"、"from_entries" 和“@base64d”函数,但我看不出如何将它们打包在一起。
我将在 bash shell 脚本中执行此操作。
给定 example.json:
{
"someattrinbute": "somevalue",
"data": {
"SOMENAME": "MTIz",
"SOMEOTHERNAME": "NDU2"
}
}
调用:
$ jq '.data[] |= @base64d' example.json
产生:
{
"someattrinbute": "somevalue",
"data": {
"SOMENAME": "123",
"SOMEOTHERNAME": "456"
}
}
map_values 可用于将 @base64d
函数应用于对象的每个元素。
例如
jq '.data|map_values(@base64d)' example.json