簡體   English   中英

將字符串轉換為角度為4的對象數組

[英]Convert string to array of objects angular 4

我有這個api響應:

{
   "status": "success",
   "code": 0,
   "message": "version list",
   "payload" : "[{\"code\":\"AB\",\"short\":\"AB\",\"name\":\"Alberta\",\"country\":\"CA\"},{\"code\":\"BC\",\"short\":\"BC\",\"name\":\"British Columbia\",\"country\":\"CA\"}]"

}

我試圖獲得有效載荷的不同對象的名稱。 有效負載在這里以字符串形式返回。

因此,當我嘗試獲取對象名稱時,它不起作用!

getAllPayload() {
  this.myService.getpayload().subscribe(
     data => {
        this.values= data;
     }
   );
}     

<select class="form-control">                     
   <option *ngFor="let value of values.payload" >
      {{value.name}}
   </option>
</select>

當我嘗試通過JSON.parse解析對象時,它不起作用

我該怎么做才能解析有效負載並獲得不同的名稱?

您在字符串中沒有轉義的引號。 一旦逃脫了,那么:

JSON.parse()

 var res = { "payload" : "[{\\"code\\":\\"AB\\",\\"short\\":\\"AB\\",\\"name\\":\\"Alberta\\",\\"country\\":\\"CA\\"},{\\"code\\":\\"BC\\",\\"short\\":\\"BC\\",\\"name\\":\\"British Columbia\\",\\"country\\":\\"CA\\"}]" }; var payloadArray = JSON.parse(res.payload); console.log( payloadArray ) console.log( Array.isArray(payloadArray) ) // true 

您可以像這樣:

getAllPayload() {
this.myService.getpayload().subscribe(
    data => {
    this.values= JSON.parse(data.payload) // this line converts the payload string to array.

    ;
  }
 );

然后在模板中

<option *ngFor="let value of values" >
     {{value.name}}</option>
 </select>

希望您能找到解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM