JSON .stringify не может сериализовать более глубокий динамический c объект в массиве - PullRequest
0 голосов
/ 19 февраля 2020

У меня есть класс, который я сериализую и загружаю как файл JSON. Для большей части, JSON.stringify делает свое дело. Однако есть часть объекта, которая не может сериализоваться.

Мой класс

export class Manifest {
    ManifestVersion: string;
    ManifestDocumentation: string;
    Name: string;
    //some more properties here
    parameters: Array<{}>;
    }

Теперь где-то в моем приложении я помещаю sh объект в массив parameters. Тип данных объекта - any, так как его динамический c.

Объект, который нужно нажать:

sanitize() {
   const _param: any = {};
   //some code
   _param = {
     "Property One": {
        type: '',
        default: ''
     },
     PropertyTwo: {
        type: '',
        foo: [],
        default: ''
     },
     ...
   };
   return _param;
} 

//...
// somewhere
this.manifest.parameters.push(this.sanitize());

Каждое свойство объекта может иметь два слова, например "word1 word2". Другое дело, что каждый объект имеет свою схему.

Теперь я попытался выполнить это через JSON.stringify(manifest, null, '\t'), но массив parameters выводит только:

{
    //some other properties
    "parameters": [
       {}
    ]
}

Вопросы:

  1. Почему он содержит пустой объект?
  2. Как мне добиться желаемого результата?
  3. Я собираюсь разработать C#, а затем теперь Angular. Я знаю JsonConvert.SerializeObject(..), чтобы сделать это довольно хорошо. Есть ли в npm подобная библиотека, которую я могу использовать для этого?
...