Выражение Json Path с AND (&&) - PullRequest
       12

Выражение Json Path с AND (&&)

2 голосов
/ 04 апреля 2019

Я пытаюсь найти выражение jsonpath, которое будет возвращать значения только в том случае, если массив json включает обе категории «беллетристика» и «ссылка» и ничего не возвращает, если в json включена только одна из них.

{
  "store": {
    "book": [
      {
        "category": "reference",
        "author": "Nigel Rees",
        "title": "Sayings of the Century"
      },
      {
        "category": "fiction",
        "author": "Herman Melville",
        "title": "Moby Dick"
      },
      {
        "category": "fiction",
        "author": "J.R.R. Tolkien",
        "title": "The Lord of the Rings"
      }
    ]
  }
}

Следующее выражение работает, когда json включает обе категории, но все равно возвращает результаты, даже если у json есть только одна из двух категорий.

$..book[?(@.category == 'fiction' || @.category == 'reference')]

Если я попытаюсь использовать && вместо ||- Я получаю ошибку выражения.

$..book[?(@.category == 'fiction' && @.category == 'reference')]
...