こんにちは私はJson文字列にあるRestController応答をjson配列に変換したいと思いますここに私がコンソールで印刷した私のjson配列の刺し傷があります。
'{"Impressions":["Budget","CTR","Campaign","Campaign state","Clicks","Conv. rate"],"Clicks":["Budget","CTR","Campaign","Campaign state","Clicks","Conv. rate"],"Revenue":["Budget","CTR","Campaign","Campaign state","Clicks","Conv. rate"]}'
それをjson配列に変換して、反復できるようにしたいのですが、
私の要件は、配列を繰り返し、キーをラベルとして出力し、値を選択オプションとして出力することです
例:
ラベルとしてのインプレッションと、選択オプションとしての「予算」、「CTR」、「キャンペーン」、「キャンペーンの状態」、「クリック数」、「コンバージョン率」。
これが反復のコードです
<div>
<form *ngFor ="let map of mapper">
<mat-form-field>
<mat-select placeholder="{{map}}">
<!--<mat-option>None</mat-option>-->
<mat-option *ngFor="let option of map" [value]="option">
{{option}}
</mat-option>
</mat-select>
</mat-form-field>
</form>
</div>
私の.tsクラス
this.clientService.getHeaders().subscribe(
(res) => {
console.log(res);
let resSTR = JSON.stringify(res);
let resJSON = JSON.parse(resSTR);
this.mapper=Array.of(resJSON._body);
console.log(this.mapper);
this.ismapped=false;
}
);
this.clientService.getHeaders().subscribe(
(res) => {
console.log(res);
let result= <any>res;
this.mapper= result;
console.log(this.mapper);
this.ismapped=false;
}
);
文字列化してから解析する必要はありません。応答をanyにキャストするだけで、配列として使用できます。
let str = '{"Impressions":["Budget","CTR","Campaign","Campaign state","Clicks","Conv. rate"],"Clicks":["Budget","CTR","Campaign","Campaign state","Clicks","Conv. rate"],"Revenue":["Budget","CTR","Campaign","Campaign state","Clicks","Conv. rate"]}'
Object.keys(JSON.parse(str)).map(arr => {
return `${arr}: ${JSON.parse(str)[arr].join(', ')}`;
});
Returnステートメントで必要なロジックを実行します。文字列、配列、またはオブジェクトとして返します。