【发布时间】:2018-12-24 15:11:14
【问题描述】:
给定以下 jq 命令和 Json:(仅 jq 命令)
echo '{"foo": {"bar": 0.00000072}}' | jq 'map_values( . + {"bar": .bar|tostring} )'
{
"foo": {
"bar": "7.2e-07"
}
}
我正在尝试将输出格式化为:
{
"foo": {
"bar": "0.00000072"
}
}
或
{
"foo": {
"bar": 0.00000072
}
}
【问题讨论】:
-
在我看来,这不是链接到问题 stackoverflow.com/questions/42956806/… 的重复,因为这里的数字 JSON 字符串被认为是可以接受的,而另一个问题要困难得多(即,实际上,不可能)单独使用 jq 来解决。
-
嗯。我可以看到一个丑陋的 hack 单独使用 jq 在你在这里得到的东西之上建立另一个答案(使用
tojson和一个独特的印记作为字符串搜索/替换标记生成恰好是有效 JSON 的原始输出),但它确实涉及更多。 -
不确定你的意思......你必须写一个新的漂亮的打印机,这是相当多的工作。用户控制格式的需求非常大,我希望它会尽快发生,而不是很晚,所以现在我倾向于等待......
-
感谢大家的回复。因为确定只有“jq”是不可能的,所以我认识到在这个问题中,“stackoverflow.com/questions/42956806/…”是最干净的选择,也是适合我需要的选择。
标签: json bash formatting jq numeric