![](/img/trans.png)
[英]Whats the best way to cast JSON to generic Object[] in angular 2 typescript?
[英]Angular Typescript Json Cast
我有一個問題,如下所述。
API:
"Data": [
{
"Id": 90110,
"Name": "John",
"Surname": "Doe",
"Email": "johndoe@gmail.com",
"Status": "Active"
},
{
"Id": 90109,
"Name": "Sally",
"Surname": "Doe",
"Email": "sallydoe@gmail.com",
"MiddleName":"II",
"Status": "Active"
}]
正如你在上面看到的。 可以為空的財產沒有聯系到我。 我將 JSON 解析為我的 typescript class。 但是在我的 class 中未定義 MiddleName 屬性。 我使用 class 導出到 excel。 由於 MiddleName 為 null 我的 excel 出口下滑,如下所示。 我該如何處理這種情況? 如何設置默認 null 未定義屬性?
用戶導出PS:我正在使用“xlsx”庫進行 excel 導出。
您說您“將 JSON 解析為我的 typescript 類”,但是您沒有顯示該 class 的代碼或解析代碼,因此我們可以為您調試。
However, assuming that you have defined a class that has properties that exactly match the JSON, and assuming that you want an empty string when a property is missing from the JSON, you could do something like this with the result from your API request:
const data = apiJson.map( (person) => {
Object.assign(
new Person(),
{
Id: person.Id,
Name: person.Name || '',
Surname: person.Surname || '' ,
Email: person.Email || '',
MiddleName: person.MiddleName || '',
Status: person.Status || ''
}
)
});
如果您的 class 沒有方法,您可能應該將其設為接口,並省略 object 和 Object.assign() 的構造,如下所示:
const data = apiJson.map( (person) => {
return {
Id: person.Id,
Name: person.Name || '',
Surname: person.Surname || '' ,
Email: person.Email || '',
MiddleName: person.MiddleName || '',
Status: person.Status || ''
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.