Я использую приложение jq для фильтрации файлов json из командной строки.
https://stedolan.github.io/jq/
Вот плохой пример, который представляет проблему.Как мне отфильтровать этот набор, чтобы включить в него все фрукты, которые не являются красными или не круглыми?
fruit.json:
[
{
"name": "banana",
"tags": [
"yellow",
"long"
]
},
{
"name": "apple",
"tags": [
"red",
"round"
]
},
{
"name": "orange",
"tags": [
"orange",
"round",
"colored"
]
}
]
Это находит все красные фрукты:
jq '.[] | select(.tags[] == "red")' fruit.json
Как мне найти все фрукты, которые не красные?
Да, я знаю, что в этом примере массив тегов для разных целей не очень хороший дизайн.У реальных данных есть массив по уважительной причине.Я просто ищу, как искать записи, где массив не содержит значения.
Это дает странные результаты, в том числе дубликаты, которые включают в себя «яблоко», так как «раунд» не является «красным», поэтомусовпадения.
jq '.[] | select(.tags[] != "red")' fruit.json
Предложения?