私はイオンと角度の両方に新しいので、この質問があまり意味をなさないなら容赦してください。Ionic AppからJSONを配列に変換する
プラットフォーム:イオン3.
私は、プロバイダがあります
getLights() {
return new Promise(resolve => {
this.http.get(this.apiUrl+'/lights').subscribe(data => {
resolve(data);
}, err => {
console.log(err);
});
});
}
これは、次のデータ(機密情報は削除)
{
"1": {
"state": {
"on": false,
"bri": 98,
"alert": "none",
"reachable": true
},
"swupdate": {
"state": "noupdates",
"lastinstall": null
},
"type": "Dimmable light",
"name": "Lion",
"modelid": "LWB010",
"manufacturername": "Philips",
},
"2": {
"state": {
"on": true,
"bri": 100,
"alert": "none",
"reachable": true
},
"swupdate": {
"state": "noupdates",
"lastinstall": null
},
"type": "Dimmable light",
"name": "Brutus",
"modelid": "LWB010",
"manufacturername": "Philips",
},
"3": {
"state": {
"on": true,
"bri": 254,
"hue": 8418,
"sat": 140,
"effect": "none",
"xy": [
0.4573,
0.41
],
"ct": 366,
"alert": "none",
"colormode": "ct",
"reachable": true
},
"swupdate": {
"state": "noupdates",
"lastinstall": null
},
"type": "Extended color light",
"name": "Hue lightstrip plus 1",
"modelid": "LST002",
"manufacturername": "Philips"
}
}
イオンページを返すを次のようにrest.tsをlist.ts
export class ListPage {
lights: any;
icons: string[];
constructor(public navCtrl: NavController,
public navParams: NavParams,
public restProvider: RestProvider) {
this.getLights();
}
getLights() {
this.restProvider.getLights()
.then(data => {
this.lights = data;
console.log(this.lights);
});
}
}
とするlist.html:
<ion-content>
<ion-list inset>
<ion-item *ngFor="let light of lights">
<h2>{{light.name}}</h2>
<p>{{light.type}}</p>
</ion-item>
</ion-list>
</ion-content>
コンソールログ文が正しくJSONを表示しますが、私は次のエラーのためにするlist.htmlでngForを使用して、それを繰り返すことはできません。
'オブジェクト'タイプの異なる[オブジェクトオブジェクト]を見つけることができません。 NgForは、配列などのIterablesへのバインドのみをサポートしています。
JSONをjavascript配列に変換する必要がありますが、どこでどのようにこれを行うかはわかりません。どのポインタも非常に高く評価されます。