【发布时间】:2017-02-05 11:32:03
【问题描述】:
如何在 jq 中创建 some_function,如果可能的话,它将转换为数字,但如果没有,则保持原样?例如:
echo '["123","12x3"]' | jq '.[] | some_function'
会回来
123
"12x3"
tonumber() 函数可以正常工作,前提是我可以在发生错误时进行一些回退。一些潜在的解决方案可能是允许错误处理,例如iferror(xxx, result_if_error),或者有某种“安全”的 tonumber() 函数,但我找不到让这两种解决方案在 jq 中工作的方法。
对于错误处理的方式,我也试过了:
echo '["123","12x3"]' | jq 'map(try tonumber catch .) '
(以及相当于用户定义的函数)无济于事。我猜这个问题有一个简单的解决方案,但我似乎找不到。
【问题讨论】:
标签: javascript error-handling type-conversion jq