Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.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
Arrays 组合来自对象流的数组_Arrays_Json_Jq - Fatal编程技术网

Arrays 组合来自对象流的数组

Arrays 组合来自对象流的数组,arrays,json,jq,Arrays,Json,Jq,我正在努力处理这个稍微复杂一点的json结构: { "name": "item1", "path": {"mapping": [ {"position": {"node_id": "1"}, "rank": "1"}, {"position": {"node_id": "2"}, "rank": "2"}, {"position": {"node_id": "3"}, "rank": "3"}, {"po

我正在努力处理这个稍微复杂一点的json结构:

{
  "name": "item1",
  "path":
    {"mapping":
      [
        {"position": {"node_id": "1"}, "rank": "1"},
        {"position": {"node_id": "2"}, "rank": "2"},
        {"position": {"node_id": "3"}, "rank": "3"},
        {"position": {"node_id": "6"}, "rank": "4"}
      ]
    }
}

{
  "name": "item2",
  "path":
    {"mapping":
      [
        {"position": {"node_id": "1"}, "rank": "1"},
        {"position": {"node_id": "5"}, "rank": "2"},
        {"position": {"node_id": "3"}, "rank": "3"},
        {"position": {"node_id": "4"}, "rank": "4"}
      ]
    }
}
我想要的只是唯一的“node_ID”条目,我不在乎它们属于哪个对象。使用
[.path.mapping[].position.node\u id]
我可以为每个对象获得一个数组,但我找不到任何关于如何组合这些对象以在其上使用
unique
的示例

期望输出为:

1
2
3
4
5
6

实现这一点的最佳方法是什么?

使用
-n
/
--null input
选项,您可以通过关键字
inputs
获取输入,并用其中的值构造单个数组。例如:

$ jq -nr '[inputs.path.mapping[].position.node_id] | unique[]' file
1
2
3
4
5
6