2

ユーザーに関する情報を保存する JSON を作成しようとしています。たとえば、最終的には次のようになります。

{
"people": [
    {
        "name": "foo",
        "company": "bar",
        "email": "foo@bar.com"
    },
    {
        "name": "bar",
        "company": "foo",
        "email": "bar@foo.com"
    }
]
}

これはフォームを介して入力されるため、空の JSON を宣言し、人々がフォームを送信するときに追加できるようにしたいと考えています。空の JSON をスケルトン (名前、会社、電子メール) で宣言する方法はありますか? また、別のエントリを追加するにはどうすればよいですか? ある種の .append("name": "bar", "company": "foo", "email": "bar@foo.com") はありますか? そのままjavascriptを使いたいのですが、必要に応じてjqueryでも大丈夫です。

4

4 に答える 4

2

JavaScript を使用すると、JSON オブジェクトで事前に定義する必要はありません。

これは完全に有効なコードです:

var o = {}; // create a new object

o.name = "Bob";
console.log(o.name); // prints Bob

o.scores = new Array();
o.scores[o.scores.length] = 1;
o.scores[o.scores.length] = 2;
o.scores[o.scores.length] = 3;
console.log(o.scores); // prints [1, 2, 3]

o.info = {};

o.info.isSet = true;
console.log(o.info.isSet); // prints true

console.log(o.info.isNotSet); // prints undefined

そのため、フォームから必要なタイプの JSON を動的に構築できます。

JSON を文字列としてレンダリングする場合は、 を使用すると、次JSON.stringify(o)のように出力されます。

{"name":"Bob","scores":[1,2,3],"info":{"isSet":true}}
于 2013-05-10T20:23:28.253 に答える
0

私はおそらく次のようなことをします:

var Person = function (name, company, email)
{
    this.name = name;
    this.company = company;
    this.email = email;
}

var People = function ()
{
    this.people = [];

    this.add = function (person)
    {
        this.people.push(person);
    }
}

var people = new People();

people.add(new Person("john", "smith", "blah@blah.com"));

alert(JSON.stringify(people));
于 2013-05-10T20:39:48.537 に答える