У меня есть эта строка json ниже, и я хочу либо извлечь массив данных «акции» или массив данных «контакты» на основе того, который мне нужен для данного запроса:
[{
"id": "stocks",
"name": "Stocks",
"data": [
{
"id": 1,
"name": "Actuant Corporation",
"symbol": "ATU"
},
{
"id": 2,
"name": "Xilinx, Inc.",
"symbol": "XLNX"
}
]
},
{
"id": "contacts",
"name": "Contacts",
"data": [
{
"id": 1,
"full_name": "Betty Traise"
},
{
"id": 2,
"full_name": "Hank Hurrion"
},
{
"id": 3,
"full_name": "Calvin Ommanney"
}
]
}]
Напримерв приведенной ниже функции, которая является наблюдаемой, предположим, что аргумент полезной нагрузки - «контакты».В этом случае мне нужно вернуть массив данных «id: contacts». Вот код, который я использую:
loadData$(payload: any = {}): Observable<any> {
// paths: {
// titlemaps: 'http://localhost:4100/data'
// },
// return this.service.get(this.config.paths.titlemaps, payload);
const JSON: any = this.service.get(this.config.paths.titlemaps, payload);
console.log('payload: ' + payload, 'json: ' + JSON); // if payload is "contacts", return only the contacts
return JSON.find(data => data.id === 'contacts');
}
Журнал консоли возвращает «contacts» и весь JSON, как и ожидалось., JSON.find завершается ошибкой:
ОШИБКА TypeError: JSON.find не является функцией
Когда я немного переключаю типы функций, я получаю компилятор машинописного текстаошибка:
[ts] Свойство 'find' не существует для типа 'Observable'.
Чего мне не хватает?