将res.json()转换为数组<;对象>;

将res.json()转换为数组<;对象>;,json,angular,typescript,Json,Angular,Typescript,我有一个java Web服务,它列出了一个Json对象列表,这些对象的属性> public class Oferta { private int id; private String categoria; private String descricao_oferta; private String anunciante; private double valor; private boolean destaque; private List<String> imagens; }

我有一个java Web服务,它列出了一个Json对象列表,这些对象的属性>

public class Oferta {
private int id;
private String categoria;
private String descricao_oferta;
private String anunciante;
private double valor;
private boolean destaque;
private List<String> imagens;
  }

只要您的类属性名称与json属性匹配,您就必须对数据进行类型转换

getData():Promise<Oferta[]>{
    return this.http.get(this.apiURL)
    .map((res: Response) => <Oferta []>res.json()).toPromise()
}
getData():承诺{
返回this.http.get(this.apirl)
.map((res:Response)=>res.json()).toPromise()
}

您必须从rxjs导入
toPromise
函数更新:我可以使用以下命令完成此操作:
this.http.get(this.actionUrl) .map(res=>res.json()) .订阅( 数据=>{ 此.ofertas=数据; }, 错误=> console.log('cannotgetofertas'), ()=>console.log('FOi')


但是我只能直接在我的Home.component.ts上,尝试使用从我的Oferta.service.ts获取数据的方法,我不能在Oferta.service中使用http,因此不确定我将如何在除了组件之外的不同类中执行此操作。

这是一个javascript/typescript问题。与JavaType Observable无关的内容不能分配给类型“Oferta[]类型“Observable”中缺少“.Property includes”。您是否已将返回类型设置为
getData
?您是如何订阅的?请查看完整方法+我如何在家中调用。组件,感谢帮助人员。用代码编辑您的问题。。还可以使用Observable.toPromise()若要转换为承诺,您如何在组件中声明了Oferta的
?Oferta公共:Oferta[];
   public getData(): Promise<Oferta[]>{

     this.ofertas = this.http.get(this.apiURL)
    .map((res: Response) => <Oferta[]>res.json())                        << ERROR WHEN CASTING

    return new Promise((resolve,reject)=>{
        let deu_certo = true
        if(deu_certo){
            setTimeout(() => resolve(this.ofertas),3000);

        }
       else{
           reject({codigo_erro: 404,mensagem_erro: 'Servidor nao  encontrado'})
       }
        //console.log('passou aqui')


    })
    .then(( ofertas: Oferta[]) => {
        console.log('segundo then')
        return new Promise((resolve2,reject2) => {
            setTimeout(() => {resolve2(ofertas )},3000)
        })

    })
    .then((ofertas: Oferta[]) => {
        console.log('terceiro then executado apos 3 sec , aguardando outra promisse ser resolvida')
        return ofertas;

    })
}
this.ofertasService.getOfertas2()
.then(
  ( ofertas: Oferta[] ) => { this.ofertas = ofertas
    console.log('a funçao resolve() foi resolvida depois de 3 segundos')
  })
  .catch((param: any) => {
    console.log(param)
  })    
  }
getData():Promise<Oferta[]>{
    return this.http.get(this.apiURL)
    .map((res: Response) => <Oferta []>res.json()).toPromise()
}