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;因为你有一个项目列表,所以外括号应该是[ ]. 以下代码生成(Demo):

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 回答