将json数组转换为angular 2+;

将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

我有一个在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(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]{
来处理执行选项。

它仍然将我作为数组。它仍然将我作为数组。