【发布时间】:2019-03-11 15:58:52
【问题描述】:
我在下面有这个 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');
}
控制台日志按预期返回“联系人”和整个 JSON。但是,JSON.find 失败并出现错误:
ERROR TypeError: JSON.find 不是函数
当我稍微切换函数类型时,我得到 typescript 编译器错误:
[ts] 类型“Observable”上不存在属性“find”。
我错过了什么?
【问题讨论】:
-
您的 tsconfig 文件中的 lib 设置是什么?
-
"lib": ["es2017","dom"],
标签: json angular rxjs observable