如何使用jq基于内部数组中的字符串值过滤对象数组

时间:2017-02-11 15:24:09

标签: json jq

我有一个像这样的json文件:

[{ "path": "p1" "title": "t1" "tags": ["tags1"] }, { "path": "p2" "title": "t2" "tags": ["tags1", "tag2"] }, { "path": "p3" "title": "t3" "tags": ["tags2"] } ] 我想根据标签过滤(使用jq)值并将标题作为输出。

例如,我会过滤所有包含 tags1 的值(输出为t1t2)。

我该怎么做?

感谢您的回答。

P.S。 :我发现了这个问题:How to filter an array of objects based on values in an inner array with jq?几乎有答案,但我无法适应它。

1 个答案:

答案 0 :(得分:0)

在纠正JSON输入后,以下过滤器生成如下所示的输出:

.[] | select( .tags | index("tags1") ) | .title

输出:

"t1"
"t2"