web-dev-qa-db-ja.com

JSONデータをクラスにマッピングする方法

Babel でES6クラスを作成し、サーバーから取得したJSONデータをES6クラスにマッピングしたいと思います。
それを行う一般的な方法はありますか?

User.js

export default class User {
  constructor() {
    this.firstName;
    this.lastName;
    this.sex;
  }
}

app.js

import User from "./classes/User";

var data = JSON.parse(req.responseText);
console.log(data.firstname); //Bob
//now...just set data one by one?
17
Nigiri

次のように、Object.assignを使用してJSONオブジェクトをthisにマージします。

class User {
  firstName;
  lastName;
  sex;

  constructor(data) {
    Object.assign(this, data);
//  ^^^^^^^^^^^^^^^^^^^^^^^^^^
  }
}

var data = JSON.parse(req.responseText);
new User(data);
29
user663031