JSON を使用してオブジェクトを作成する方法は知っていますが、JSON を使用して特定のオブジェクト タイプのオブジェクトを作成する方法はないようです。
オブジェクトとそのインスタンスの作成の例を次に示します。
Person = function() { };
Person.prototype = {
FirstName: null,
GetFirstName: function() {
return this.FirstName;
}
};
//Create an instance of the Person Object
var me = new Person();
me.FirstName = "Chris";
alert(me.GetFirstName()); //alert the FirstName property
ここで、JSON を使用して新しい Person オブジェクトを作成し、GetFirstName 関数が機能するようにします。
これが私がやろうとしているようなものです(しかし、このコードは機能しません):
var you = new Person() { FirstName: "Mike" };
// OR
var you = new Person{ FirstName: "Mike" };
JSONを使用して特定のタイプのオブジェクトを作成する方法はありますか?
更新: Person オブジェクトを使用した私のサンプルは、質問を単純化するためのものです。実際、インスタンスを作成する必要がある実際のオブジェクトのコンストラクターを変更することはできません。オブジェクトはサードパーティ ライブラリの一部です。
更新: 以下のいくつかの提案を使用して、オリジナルから継承するオブジェクトを作成し、そのコンストラクターで JSON を受け入れる方法を見つけることができました。これはきれいです!
personWrapper = function(obj){
for(var o in obj){
this[o] = obj[o];
}
};
personWrapper.prototype = new Person();
var you = new personWrapper({FirstName: "Chris"});
alert(you.GetFirstName());
alert(you instanceof Person); // returns True - we are successfully inheriting from Person!