如何遍历对象而不是数组

时间:2018-10-24 19:13:22

标签: json angular typescript

我想从该URL http://mindicador.cl/api中检索json数据。但特别是我想检索所有对象,例如“ uf”,“ ivp”等,以便将它们显示在表或列表中。不幸的是,没有数组格式,所以如何在那迭代呢?

{
    "version": "1.5.0",
    "autor": "mindicador.cl",
    "fecha": "2018-10-24T17:00:00.000Z",
    "uf": {
        "codigo": "uf",
        "nombre": "Unidad de fomento (UF)",
        "unidad_medida": "Pesos",
        "fecha": "2018-10-24T04:00:00.000Z",
        "valor": 27413.56
    },
    "ivp": {
        "codigo": "ivp",
        "nombre": "Indice de valor promedio (IVP)",
        "unidad_medida": "Pesos",
        "fecha": "2018-10-24T04:00:00.000Z",
        "valor": 28523.73
    }
}

我想遍历所有对象,即“ uf”,“ ivp”等等。我该怎么做?它不是数组,所以我不能使用map。

这是我服务的方法:

search(): Observable<Object> {
    const queryUrl = this.apiUrl;
    return this.http.get(queryUrl);
  }

2 个答案:

答案 0 :(得分:1)

您应该解析HTTP GET返回的JSON对象,并将其视为一个对象,以便可以访问JSON对象的每个成员。

this.search().subscribe( data => {
    let jsonObject: any = JSON.parse(data);
    console.log(jsonObject);
    // parse through jsonObject members
});

答案 1 :(得分:0)

迭代响应对象,但仅选择那些是对象的值。

for(const key of Object.keys(sampleResponseObject)) {
    if(typeof sampleResponseObject[key] === 'object') {
        console.log(sampleResponseObject[key]);
    }
}