[英]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解析對象時,它不起作用
我該怎么做才能解析有效負載並獲得不同的名稱?
您在字符串中沒有轉義的引號。 一旦逃脫了,那么:
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.