【发布时间】:2018-11-03 21:36:59
【问题描述】:
我想从 JSON 文件中检索 所有 键值。例如:
{
"total_count": 6,
"incomplete_results": false,
"items": [
{
"url": "https://api.github.com/repos/Samhot/GenIHM/issues/6",
"id": 293237635,
"number": 6,
"title": "Rechercher des documents",
"user": {
"login": "Samhot",
"id": 7148311
]
}
我想得到:["total_count", "incomplete_results", "items", "url", "url", "number", "title", "user", "login", "id"]
我有一个函数可以在 observable 中返回我的 JSON 内容:
getConfig(): Observable<any> {
return this.http.get<any>(this.myURL);
}
之后,使用.map 重新格式化数据以仅使用Object.keys() 函数获取键:
merge()
.pipe(
startWith({}),
switchMap(() => {
return this.getConfig();
}),
map(data => {
return Object.keys(data.items[0]);
}
)
)
.subscribe(data => {
this.dispo = data;
});
我的问题是我只得到了我告诉的 JSON 级别的键 (data.items[0]) 而不是祖先或后代。
当然我可以创建多个请求,但它要求提前知道 JSON 的结构,我想要的是使其通用 ...
无论 JSON 的结构如何,我如何才能拥有一个包含所有键的数组?
提前致谢!
【问题讨论】:
标签: json typescript key angular5