Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jq合并json数组元素_Json_Jq - Fatal编程技术网

jq合并json数组元素

jq合并json数组元素,json,jq,Json,Jq,我的数据位于以下json数组中: [{ "min": 1, "max": 2}, { "min": 5, "max": 6}] 我需要它的格式: 1-2,5-6 我尝试了以下过滤器: .[] | [ .min, .max|tostring ] | join("-") 我最终得到了: "1-2" "5-6" 我不知道如何从这句话中得到想要的“1-2”、“5-6”。 我是jq新手,希望您能给我一些提示。也可以与join结合使用: jq -r 'map("\(.min)-\(.max)")

我的数据位于以下json数组中:

[{ "min": 1, "max": 2},
 { "min": 5, "max": 6}]
我需要它的格式:

1-2,5-6
我尝试了以下过滤器:

.[] | [ .min, .max|tostring ] | join("-")
我最终得到了:

"1-2"
"5-6"
我不知道如何从这句话中得到想要的“1-2”、“5-6”。 我是jq新手,希望您能给我一些提示。

也可以与
join
结合使用:

jq -r 'map("\(.min)-\(.max)") | join(",")' file.json
谢谢你的主意

jq -r 'map([.min, .max|tostring] | join("-")) | join(",")' input.json
1-2,5-6
如果您有一个足够新的jq版本,您可以放弃对
tostring
的调用

如果最小/最大元素始终按该顺序排列,并且没有其他键,则可能需要考虑:

map([.[]] | join("-")) | join(",")

谢谢你的帮助,也谢谢你@hek2mgl:)它现在工作得很好。