0

jQueryを使用してJSON配列を作成したいのですが、問題が発生しました:

<html>
    <head>
        <title>Demo - Push Data Object</title>
        <script type="text/javascript" language="javascript" src="js/jquery.js"></script>
        <script>
            var obj = new Object();

            $(document).ready(function() {
                $("#add").click(function() {
                    item('Item 1', '1000');
                    item('Item 2', '2000');
                    console.log(JSON.stringify(obj));
                });
            });

            function item(itemNo, price) {
                obj.itemNo = itemNo;
                obj.price = price;
            };
        </script>
    </head>

    <body>
        <input id="add" type="button" value="Add Object" />
    </body>
</html>

ボタンaddをクリックすると、次のように出力されます {"itemNo":"Item 2","price":"2000"}

私が達成したいのは次のようなものです:

{
    {
        "itemNo":"Item 1",
        "price":"1000"
    }, 
    {
        "itemNo":"Item 2",
        "price":"2000"
    }
}

上記のコードで何を変更する必要がありますか?

4

1 に答える 1

1

目的の出力は有効なJSONではありません。アイテムのリストがあるので、外側の角かっこは。である必要があります[ ]。次のコードはそれを生成します(デモ):

var objs = [];

$(document).ready(function() {
    $("#add").click(function() {
        objs.push(item('Item 1', '1000'));
        objs.push(item('Item 2', '2000'));
        console.log(JSON.stringify(objs));
    });
});

function item(itemNo, price) {
    return { 
        itemNo : itemNo,
        price : price
    };
};


出力:

[
    {
        "itemNo":"Item 1",
        "price":"1000"
    }, 
    {
        "itemNo":"Item 2",
        "price":"2000"
    }
]
于 2012-09-02T11:22:35.333 に答える