Если у вас есть класс и «необработанные» данные json, то я делаю, чтобы принимать необработанные данные в конструкторе и затем обновлять свойства класса.
Например, мои необработанные данные выглядит так:
{
users: [
{ id: 1, firstName: 'foo', lastName: 'bar', customer: { id: 1, name: 'bla' } },
{ id: 2, firstName: 'foo2', lastName: 'bar2', customer: { id: 2, name: 'customer' } },
];
}
class User {
id;
@observable firstName;
@observable lastName;
customer;
constructor(rawUser) {
this.id = rawUser.id;
this.firstName = rawUser.firstName;
this.lastName = rawUser.lastName;
this.customer = new Customer(rawUser.customer);
}
}
class UsersStore {
@observable users = [];
constructor(rawUsers) {
this.users = rawUsers.map(rawUser => new User(rawUser));
}
}
Затем, когда я восстанавливаю данные, я просто использую
const usersStore = new UsersStore(rawData.users);
круто вещь в этом подходе вложенность , каждый «уровень» обрабатывает свою часть.