0

JSON スキーマからオブジェクト コンストラクターを構築する方法はありますか? 一度編集できるアプリケーションの名前空間に関連付けられた json スキーマを作成し、オブジェクトのプロパティを (実行前に) 変更したいと考えています。

次のような疑似古典的なオブジェクトコンストラクターを作成できることを知っています

var Note = function(input){ 
  var title = input
};
var newNote = new Note("test title");

jsonから同様の構造を作成することは可能ですか? 私が書くことができるように:

var Note = {
  "title":""
};
var newNote = new Note();
newNote.title = "test title"

上記が構文的に間違っていることは理解していますが、たとえば次のようにしたいと思います。

var notes = {
  "NotesList":[{
    "title":"note1",
    "content":"test content"
  }]
}
var newNote = new Note();
notes.NotesList.add(newNote);
newNote.title = "new title";

すべてのオブジェクトとそのすべての子を、json スキーマから作成されたこのオブジェクト テンプレートに基づいて作成できるようにします。これが不可能な場合は、より良い方法をお勧めできますか?

4

2 に答える 2

0

私が探していたものに対する答えを見つけました。私の最終的な目標は、それぞれが子などを持つことができる子の配列を持つオブジェクトを作成することでした。オブジェクトは、次のようにアプリケーション全体の名前空間として使用されます。

var myobj = {};

JSON を使用してこのオブジェクトのプロパティを指定し、これらのプロパティから次のようなコンストラクタを構築したいと考えました。

var myObj = {
"name": "genericname",
"id": "uniqueid",
"children": [
    {
        "grandchildren": [
            {
                "name": "child",
                "age": "0"
            }
        ]
    }
]
};

私が最終的にやったのは、これからコンストラクター関数を構築し、それらを新しいオブジェクトに複製して、次のようなデフォルト値を持つことができるようにすることでした:

myObj.Child = function(){
  var child = myObj.children[0];
  return child;
  //this is the unmodified constructor child
};
var myObj.createChild = function(){
  var newChild = new Clone(myObj.Child());
  //do stuff to this is new child which can be modified without changing the original
  return newChild;
};
于 2013-08-12T00:58:53.673 に答える