web-dev-qa-db-ja.com

angular 6でJson文字列をjson配列に変換する

こんにちは私は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;
      }
);
2
nidhi
this.clientService.getHeaders().subscribe(
  (res) => {
      console.log(res);
      let result= <any>res;
      this.mapper= result;
      console.log(this.mapper);
      this.ismapped=false;
  }
);

文字列化してから解析する必要はありません。応答をanyにキャストするだけで、配列として使用できます。

2
DEVCNN
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ステートメントで必要なロジックを実行します。文字列、配列、またはオブジェクトとして返します。

0
Alex Link