Search code examples
jsonata

How to check "not equal" in JSONata for a string filter?


Trying to filter out a specific string value in JSONata but getting unexpected results.

JSON input:

{
  "Account": {
    "Account Name": "Firefly",
    "Order": [
      {
        "OrderID": "order103",
        "Product": [
          {
            "ProductName": "Hat",
           
            "Quantity": 2
          },
          {
            "ProductName": "Trilby hat",
            "Quantity": 1
          }
        ]
      }
    ]
  }
}

Need to print ProductName not equal to Hat code, JSONata Query:

Account.Order.Product.ProductName!='Hat'?Account.Order.Product.ProductName
  • Actual output:
[
  "Hat",
  "Trilby hat"
]
  • Expected output:
[
"Trilby hat"
]

Solution

  • This might help:

    Account.Order.Product[ProductName != "Hat"].ProductName[]

    JSONata playground: https://jsonatastudio.com/playground/eca26832