我的JSON文件的结构如下:
[
{id: 1,
title: "First Element"
},
{id: 2,
title: "Second Element"
},
{id: 3,
title: "Third Element"
}
]
通过调用类似的东西,我已经能够成功检索整个JSON数组(文件)
Component.ts:
this.dataService.getAll()
.subscribe(
(data: Book[]) => this.myData = data,
(err: any) => console.log(err)
);
Service.ts
getAll(): Observable<any> {
return this.http.get<any>(this.apiURL)
其中apiURL是我的库中本地json文件的路径。如果可能的话,如何仅获取ID为1且标题为“ First element”的第一个元素?
我一直在尝试:
getBookById(title: String) Observable<Book> {
return this.http.get<Book>(this.apiURL + `/${title}`)
使用相同的component.ts方法,但使用Book而不是Book []。但是它失败并显示HTTPGet错误,提示找不到它。这是有道理的,因为我感觉缺少标题和URL之间的字段(用于访问或解析每个元素),但是我是否缺少某些语法,还是其他呢?感谢您的帮助和时间。
答案 0 :(得分:0)
我只是重新阅读了您的文章(也许您已对其进行了更新),它特别表明您正在阅读JSON文件。因此,我认为该文件在客户端上是本地的。
如果是这样,则没有机制可以使用http从JSON文件中检索单个元素。您只能读取整个文件。
您可以然后将结果过滤为仅所需的结果,或在数组中找到结果。
例如,这是我的一个:
products.find(p => p.productId === id))
这会按ID查找特定产品,其中products
是我检索到的数组。