Как отфильтровать расширенные наборы данных в URL-адресе json?

#php #arrays #json #filter

Вопрос:

Я пытаюсь отфильтровать результаты в расширенном наборе данных моего URL-адреса json. Я могу фильтровать обычные данные просто отлично, но у меня возникают проблемы с доступом к расширенным данным, которые возвращаются в виде вложенного массива (я полагаю).

Например, я использую этот URL-адрес для фильтрации и отображения только города Остин:

 https://api.bridgedataoutput.com/api/v2/OData/actris/Property?access_token=HIDDENamp;$filter=City eq 'Austin'   (or unfriendly URL would look like this amp;$filter=City eq 'Austin')
 

Я могу расширить этот набор данных и включить информацию об открытом доме, чтобы URL выглядел так:

 https://api.bridgedataoutput.com/api/v2/OData/actris/Property?access_token=HIDDENamp;$expand=OpenHousesamp;$filter=City eq 'Austin'
 

Я хотел бы знать, как я могу фильтровать по значению в расширенном разделе. Поэтому вместо фильтрации по городу я бы фильтровал по OpenHouseStatus = Active (см. Пример json ниже).

Структура результатов json выглядит следующим образом:

 {
  "value": [
    {
      "PhotosCount": 15,
      "FireplacesTotal": 0,
      "City": "Austin",
      "Media": [
        {
          "Order": "1",
          "MediaURL": "https://dvvjkgh94f2v6.cloudfront.net/62e30b5c/108289219/83dcefb7.jpeg",
          "MediaCategory": "Photo",
          "MediaObjectID": "108289219_1",
        },
        {
          "Order": "2",
          "MediaURL": "https://dvvjkgh94f2v6.cloudfront.net/62e30b5c/108289219/1ad5be0d.jpeg",
          "MediaCategory": "Photo",
          "MediaObjectID": "108289219_2",
        },
      ],
      "PostalCode": "78701",
      "UnparsedAddress": "48 E East Ave # 2509, Austin TX 78701",
      "OpenHouses": [
        {
          "OpenHouseMethod": "In Person",
          "OpenHouseStatus": "Active",
          "OpenHouseType": "Public",
          "OpenHouseStartTime": "2021-04-01T15:00:00.000Z",
          "OpenHouseEndTime": "2021-04-01T19:00:00.000Z",
          "ListingId": "5645082",
          "OpenHouseDate": "2021-04-01",
        },
        {
          "OpenHouseMethod": "In Person",
          "OpenHouseStatus": "Ended",
          "OpenHouseType": "Public",
          "OpenHouseStartTime": "2021-03-30T15:00:00.000Z",
          "OpenHouseEndTime": "2021-03-30T19:00:00.000Z",
          "ListingId": "5645082",
          "OpenHouseDate": "2021-03-30",
        }
      ]
    }
  ]
}
 

Ответ №1: