我在Angular 2应用程序中编写了一个方法,在进行返回JSON的服务器调用之后创建并返回类的Observable。但是,JSON的格式很差,因此我需要一个快速修复程序来编辑返回的JSON,然后再将其发送到.json()
方法,该方法由于格式不正确的JSON而导致错误。
具体来说,我需要在数组的右括号后面的JSON中找到一个错误的逗号,并将其删除。
我的问题
Observable.map函数应该是什么完全?如何查找和操作实际的JSON字符串,然后将其发送?我对所有这一切都不熟悉,所以我们将不胜感激。
getList(): Observable<Thing[]> {
let response = this.http.get('/api/get-things');
let fixed = response.map(____WHAT GOES HERE?_____);
return fixed.map((r: Response) =>r.json as Thing[]);
}
答案 0 :(得分:2)
假设你有一个fix
方法:
const fix = (json: string) => {
// ...
}
你可以这样做:
const things: Observable<Thing[]> = this.http.get('/api/get-things')
.map(response => response.text())
.map(fix)
.map(fixedJson => JSON.parse(fixedJson) as Thing[])
然而,这是一个非常糟糕的主意。 修复服务器端代码!