簡體   English   中英

Angular Typescript Json 演員表

[英]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.

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