json - 从API返回时如何获取JSON Key的值
问题描述
我的 API 将 JSON 对象返回给 Angular 函数
我需要获取该 JSON 中键的值。如果我直接在控制台上打印该值,则没有错误。
我的角度代码:
submit() : void {
console.log("FORM SUBMITTED")
console.log(JSON.stringify(this.register.value, undefined, 2));
this._registerService.register(this.register.value)
.subscribe(
data => {
console.log("DATA : ", JSON.stringify(data, undefined, 2));
console.log("Status : " + data.status);
if (data.status == "duplicate") {
console.log("DUPLICATE");
} else if (data.status == "success") {
console.log("SUCCESS");
}
},
error => {
console.log("ERRORrrr : ", JSON.stringify(error, undefined, 2));
this._router.navigate(['/500']);
}
)
}
在上面的代码中 console.log("DATA : ", JSON.stringify(data, undefined, 2)); 工作正常。它显示了数据:
但是如果我尝试在“数据”中获取“状态”的值,
console.log("Status : " + data.status);
它给出了错误:
error TS2339: Property 'status' does not exist on type 'Object'.
我需要在if语句中使用status的值
请帮助获取 data.status 的值
解决方案
我不知道您使用的是哪个版本的 rxjs,但在当前版本中,您必须使用catchError()捕获 Observables 的错误。
这将是我的解决方案:
register(body: any): Observable<{status: string, summary: string, details: string}> {
return this._http.post(
'localhost:3000/register', body,
{observe: 'body'}).pipe(catchError(this.handleError));
}
也许这会解决你的问题。
推荐阅读
- python - 我是否能够获取 html 中单选按钮的文本以在 Flask 中使用?
- python - 运行“python -m ensurepip --default-pip”但提示我“要求已经满足:pip in /usr/local/lib/python3.8/site-packages (19.2.3)”
- javascript - 在 jQuery 中永久反转 DataTable 的顺序?
- mongodb - 为什么不在 configdb 中使用仲裁器?
- reactjs - 如何将数组和对象同时传递给 axios.post
- javascript - textarea的firefox selectionchange事件?
- html - 如何将交替背景颜色应用于不是兄弟姐妹的 div
- bash - 根据 bash 中的计数变量构造命令
- qt - qml 中的日历(DaysofWeek)
- haskell - 如何跨模式匹配执行 where 子句