Typescript Сериализация / десериализация рекурсивного объекта, содержащего все данные - PullRequest
0 голосов
/ 19 марта 2019

Я пытаюсь найти модуль npm, который позволит мне взять следующий объект JSON:

//JSON Object
{
   a : 7,
   b : "Hello",
   c : "Don't forget Me",
   d : 
   {
       first:
       {
           e : 8,
           f : "all",
           g : "don't forget"
       },
      second:
       {
           e : 9,
           f : "all2",
           g : "don't forget2"
       },
   }
}

и десериализовать его в объект

class dataObject
{
    aNumber : number;
    bString : string;
    efgArray : [string, efgObject][];
    notInJson : string;
}

class efgObject
{
   eNumber : number;
   fString : string;
}

, чтобы я мог сделатьчто-то вроде:

let dataObject = new dataObject();
deserialize(dataObject, jsonFromAbove);
console.log(dataObject.bString) //Returns "Hello"
console.log(dataObject.efgArray["first"].eNumber) //Returns 8

console.log(dataObject.notInJson) //Returns undefined
console.log(dataObject.c) //ERROR

Но также сможет отображаться обратно на тот же объект JSON.Кажется, что сериализаторы, на которые я смотрел, потеряют свойства, которые не были явно отображены при вводе, или не смогут выполнять рекурсивное отображение элементов данных.

...