#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:
Я решил эту проблему следующим образом: