将json数组转换为angular 2+;
我有一个在API中获得结果的服务。API将结果作为JSON数组返回。但我需要结果作为JSON对象 API返回:将json数组转换为angular 2+;,json,angular,typescript,Json,Angular,Typescript,我有一个在API中获得结果的服务。API将结果作为JSON数组返回。但我需要结果作为JSON对象 API返回: [{"record_id":"101","demographics_spring_complete":"2"}] 我需要的对象格式为: {"record_id":"101","demographics_spring_complete":"2"} 我的服务。ts: getStatus() { return this.http.post(this.baseUrl).map(re
[{"record_id":"101","demographics_spring_complete":"2"}]
我需要的对象格式为:
{"record_id":"101","demographics_spring_complete":"2"}
我的服务。ts:
getStatus() {
return this.http.post(this.baseUrl).map(res => res.json())
.catch(this.handleError);
}
还有我的组件。ts:
export class BaselineListComponent implements OnInit {
statuses: any[] = [];
constructor(
public recordService: RecordsService
) { }
loadStatus() {
this.recordService.getStatus('demographic_spring', 'baseline_visit_a_arm_1', 101).subscribe(statuses => {
this.statuses = statuses;
console.log(this.statuses);
});
}
}
我确实尝试了一些转换选项,但由于API返回一个数组,我无法将它们转换为JSON对象。任何帮助都将不胜感激 添加一个
do
操作符并返回第一个元素
getStatus() {
return this.http.post(this.baseUrl).map(res => res.json())
.do(res => res[0])
.catch(this.handleError);
}
添加
do
运算符并返回第一个元素
getStatus() {
return this.http.post(this.baseUrl).map(res => res.json())
.do(res => res[0])
.catch(this.handleError);
}
似乎您需要数组的第一个对象,使用array[index]如下所示
loadStatus() {
this.recordService.getStatus('demographic_spring', 'baseline_visit_a_arm_1', 101).subscribe(statuses => {
this.statuses = statuses;
console.log(this.statuses[0]);
});
}
似乎您需要数组的第一个对象,使用array[index]如下所示
loadStatus() {
this.recordService.getStatus('demographic_spring', 'baseline_visit_a_arm_1', 101).subscribe(statuses => {
this.statuses = statuses;
console.log(this.statuses[0]);
});
}
创建模型类(record.model.js)
在Service.js类中,您需要编写如下代码:
在Service.js类中导入一些库
import { Record } from '../models/record.model'
import 'rxjs'
import { Observable } from 'rxjs/Rx'
创建函数以获取记录
getRecords(): Observable<Record[]> {
return this.http.get(this.userApiUrl)
.map((res: Response) => res.json())
.catch((error: any) => Observable.throw(error.json().error || 'Server Error'))
}
然后订阅服务的记录功能
getRecord(): void {
this.recordService.getRecords().subscribe((result: any) => {
this.record = result && result[0] || {};
}, (error: any) => {
console.log(error);
});
}
如果result
返回[{“record\u id”:“101”,“demographics\u spring\u complete”:“2”}
,则结果[0]将返回{“record\u id”:“101”,“demographics\u spring\u complete”:“2”
,但如果结果没有值未定义
执行选项,我们将使用this.record=result&&result[0]{代码>来处理执行选项。创建模型类(record.model.js)
在Service.js类中,您需要编写如下代码:
在Service.js类中导入一些库
import { Record } from '../models/record.model'
import 'rxjs'
import { Observable } from 'rxjs/Rx'
创建函数以获取记录
getRecords(): Observable<Record[]> {
return this.http.get(this.userApiUrl)
.map((res: Response) => res.json())
.catch((error: any) => Observable.throw(error.json().error || 'Server Error'))
}
然后订阅服务的记录功能
getRecord(): void {
this.recordService.getRecords().subscribe((result: any) => {
this.record = result && result[0] || {};
}, (error: any) => {
console.log(error);
});
}
如果result
返回[{“record\u id”:“101”,“demographics\u spring\u complete”:“2”}
,则结果[0]将返回{“record\u id”:“101”,“demographics\u spring\u complete”:“2”
,但如果结果没有值未定义
执行选项,我们将使用this.record=result&&result[0]{
来处理执行选项。它仍然将我作为数组。它仍然将我作为数组。