给出以下jq命令和Json:
"yyyy-MM"
我正在尝试将输出格式化为:
jq '.[]|[.string,.number]|join(": ")' <<< '
[
{
"number": 3,
"string": "threee"
},
{
"number": 7,
"string": "seven"
}
]
'
不幸的是,我的尝试导致了以下错误:
jq:错误:无法添加字符串和数字
如何将数字转换为字符串,以便两者都可以连接?
答案 0 :(得分:54)
jq命令具有tostring功能。我花了一段时间才学会通过反复试验来使用它。以下是如何使用它:
three: 3
seven: 7
答案 1 :(得分:17)
另一种可以说更直观的格式是:
jq '.[] | .string + ": " + (.number|tostring)' <<< ...
值得注意的是.number|tostring
周围的parens需要。
答案 2 :(得分:2)
答案 3 :(得分:0)
使用“ map_values”运算符修改对象
示例
{“ foo”:{“ bar”:3}}
map_values(。+ {“ bar”:.bar | tostring})
输出
{ “ foo”:{ “ bar”:“ 3” } }