OData筛选器对数组属性的返回空数组或数组

时间:2019-04-02 20:45:20

标签: json odata

我有一个与此对象相似的JSON对象:

@AfterEach

我想查询它。...

{
  "customers": [
    {
      "id": 1,
      "name": "bob",
      "orders": [{"id": 1, "customerId": 1, "itemId": 6}]
    },
    {
      "id": 2,
      "name": "jane",
      "orders": [{"id": 2, "customerId": 2, "itemId": 7}]
    }
  ]
}

...然后得到...

...odata/customers?$expand=orders&$filter=orders/any(order: order/itemId eq 6)

但是我得到的是...

{
  "customers": [
    {
      "id": 1,
      "name": "bob",
      "orders": [{"id": 1, "customerId": 1, "itemId": 6}]
    },
    {
      "id": 2,
      "name": "jane",
      "orders": []
    }
  ]
}

我想吸引所有客户,只希望将过滤器应用于“订单”。

我该怎么做才能得到这个结果?

1 个答案:

答案 0 :(得分:0)

遇到同样的问题! 通过在any()中用相同条件过滤我的扩展来解决。

applications?$expand=accounts($filter=idUser eq 5)&$filter=accounts/any(account: account/idUser eq 5)

也许到很晚,但希望它能对其他人有所帮助;)