Angular Машинопись Json В ролях - PullRequest
0 голосов
/ 22 апреля 2020

У меня проблема, как я уже упоминал ниже.

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"
  }]

Как вы можете видеть выше. Nullable собственность не доходят до меня. Я разобрал это JSON в мой класс машинописи. Но свойство MiddleName установлено неопределенным в моем классе. Я экспортирую в Excel, что я использую класс. Из-за того, что MiddleName равно нулю, мой экспорт в Excel упал, как показано ниже. Как я могу справиться с этой ситуацией? Как установить пустое неопределенное свойство по умолчанию?

Пользовательский экспорт PS: я использую библиотеку 'xlsx' для экспорта в Excel.

1 Ответ

0 голосов
/ 22 апреля 2020

Вы говорите, что "проанализировали это JSON для моего класса машинописи", но вы не показываете код этого класса или код синтаксического анализа, поэтому мы не можем отладить его для вас.

Однако, предполагая, что вы определили класс, свойства которого точно соответствуют JSON, и предполагая, что вам нужна пустая строка, когда свойство отсутствует в JSON, вы можете сделать что-то подобное с результатом из вашего запроса API:

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 || ''
       }
    )
});

Если у вашего класса нет методов, вы, вероятно, должны вместо этого сделать его интерфейсом и опустить конструкцию объекта и 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 || ''
       }
 });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...