jq:jq:错误:tostring/1 未在第 1 行 <top-level> 处定义:

问题描述 投票:0回答:1

我有一个 json 对象数组,我想在其中使用一些值创建一些字符串。我尝试的是:

cat a.json | jq 'map(.id+" "+tostring(.time))'

它给出了错误:

jq: error: tostring/1 is not defined at <top-level>, line 1:

如果我省略了 tostring,那么问题当然是

time
不是字符串而是数字。

有办法做到这一点吗?我可以使用 sed+tr 做一个解决方法,但它不优雅。

json jq
1个回答
2
投票

只有一个

tostring/0
功能。尝试改为
(.time | tostring)

jq 'map(.id + " " + (.time | tostring))' a.json

或者,使用字符串插值,它会自动转换为字符串:

jq 'map("\(.id) \(.time)")' a.json
© www.soinside.com 2019 - 2024. All rights reserved.