如何在 JSON API 响应中获取对象的对象?
How to get object of object in JSON API response?
我在 Angular 中使用 Ionic。我有一个 JSON API 响应,我想获取对象内部的对象项,在本例中为作者项。
JSON API 回应
{
x{
**authors**:{
auth-sara-rts-2022:
Code: "rts"
Contact:{
email:"xx@gmail.com"
phone:"0.."}
[[Prototype]]: Object
auth-sami-sgs-2022:
Code: "sgs"
Contact:{
email:"xx@gmail.com"
phone:"0.."}
[[Prototype]]: Object
[[Prototype]]: Object
}
[[Prototype]]: Object},
y{
yy: "text"
[[Prototype]]: Object}
[[Prototype]]: Object}
}
这里是如何在ts文件中调用API
callAPI(body: any, header: any): Observable<any> {
return this.http.post(API_URL+API_ENDPOINT,body,header);
}
postAPI(body:any,header) {
this.callAPI(body, header).subscribe(
(data) => { console.log(data.x.authors);
}
);
}
我得到了一个作者列表,我想访问每个作者的集合中的项目(代码和联系方式)。
我试过这段代码,但它返回了一个未定义的值。
console.log(data.x.authors[0]);
您遇到的问题是您试图使用数组表示法 (data.x.authors[0]
) 访问对象中的 key/value 对。为了将 authors
对象转换为数组,有多种方法。我建议 Object.entries
,其中 returns 一个元组数组,每个元组包含键和值:
const authors = Object.entries(data.x.authors);
console.log(authors[0]); // ['auth-sara-rts-2022', { Code: 'rts', ... }]
这里是 Object.entries()
的 MDN 文档:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries
我在 Angular 中使用 Ionic。我有一个 JSON API 响应,我想获取对象内部的对象项,在本例中为作者项。
JSON API 回应
{
x{
**authors**:{
auth-sara-rts-2022:
Code: "rts"
Contact:{
email:"xx@gmail.com"
phone:"0.."}
[[Prototype]]: Object
auth-sami-sgs-2022:
Code: "sgs"
Contact:{
email:"xx@gmail.com"
phone:"0.."}
[[Prototype]]: Object
[[Prototype]]: Object
}
[[Prototype]]: Object},
y{
yy: "text"
[[Prototype]]: Object}
[[Prototype]]: Object}
}
这里是如何在ts文件中调用API
callAPI(body: any, header: any): Observable<any> {
return this.http.post(API_URL+API_ENDPOINT,body,header);
}
postAPI(body:any,header) {
this.callAPI(body, header).subscribe(
(data) => { console.log(data.x.authors);
}
);
}
我得到了一个作者列表,我想访问每个作者的集合中的项目(代码和联系方式)。
我试过这段代码,但它返回了一个未定义的值。
console.log(data.x.authors[0]);
您遇到的问题是您试图使用数组表示法 (data.x.authors[0]
) 访问对象中的 key/value 对。为了将 authors
对象转换为数组,有多种方法。我建议 Object.entries
,其中 returns 一个元组数组,每个元组包含键和值:
const authors = Object.entries(data.x.authors);
console.log(authors[0]); // ['auth-sara-rts-2022', { Code: 'rts', ... }]
这里是 Object.entries()
的 MDN 文档:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries