将字符串与 JSON.stringify (Javascript) 结合使用



好吧,这个问题可能很愚蠢,但我真的被困住了。

我想要如下所示的 json 结构:

order: {
    currency: 'eur',
    order_items: [
        {
            id: 3,
            quantity: 1
        },
        {
            id: 67,
            quantity: 1
        }
    ]
}

我现在正在做的是:

function makeOrder(){
    var myArray = new Array();
    for(var i=0;i<bookedItemsArray.length;i++){
        var newObject = new OrderedItem(bookedItemsArray[i].id, bookedItemsArray[i].amount);
        myArray.push(newObject);
    }
    var mystring = JSON.stringify(myArray);
    //myString = "order: {currency: 'eur', order_items: " + myString + "}";
    console.log(myString);​
}

我在order_items数组中获取数据的方式很酷,但是当我尝试将数组与其余数组连接起来(注释中的行)时,我得到:

?:??: W/?(?): Uncaught SyntaxError: Unexpected token ILLEGAL at file:///android_asset/www/november/js/t03/Booking/bookingProcess.js:96
关于

字符串和 JSON 结构的组合方式,我是否缺少一些东西?

谢谢。

你为什么不这样做呢?

var x = {
    order: {
        currency: 'eur',
        order_items: []
    }
};
for (var i = 0; i < 10; i++) {
    var newObject = {
        i: i,
        Text: 'Some Text'
    };
    x.order.order_items.push(newObject);
}
var str = JSON.stringify(x);

看看这个小提琴:http://jsfiddle.net/9V6Vb/

以下是生成的 JSON:

{
    "order": {
        "currency": "eur",
        "order_items": [{
            "i": 0,
            "Text": "Some Text"},
        {
            "i": 1,
            "Text": "Some Text"},
        {
            "i": 2,
            "Text": "Some Text"},
        {
            "i": 3,
            "Text": "Some Text"},
        {
            "i": 4,
            "Text": "Some Text"},
        {
            "i": 5,
            "Text": "Some Text"},
        {
            "i": 6,
            "Text": "Some Text"},
        {
            "i": 7,
            "Text": "Some Text"},
        {
            "i": 8,
            "Text": "Some Text"},
        {
            "i": 9,
            "Text": "Some Text"}]
    }
}​

正如Koen所说,你可以用第一个属性是order创建一个对象,并在一次中串化所有对象。

var myOrder = {
order: {
currency: 'eur',
         order_items: [
           {
             id: 3,
             quantity: 1
           },
           {
             id: 67,
             quantity: 1
           }
         ]
      }
}
console.log("currency : " + myOrder.order.currency);
for (var i in myOrder.order.order_items) {
    console.log("items number " + i);
    console.log("items id" + myOrder.order.order_items[i].id);
    console.log("items quantity" + myOrder.order.order_items[i].quantity);
}
var myString = JSON.stringify(myOrder);
console.log(myString);

但我认为你应该让"命令"你的对象

问候

JSON 应该封装在 {} 中。

所以你的JSON可能应该是这样的:

{
    "order": {
        "currency": "eur",
        "order_items": [
            {
                "id": 3,
                "quantity": 1
            },
            {
                "id": 67,
                "quantity": 1
            }
        ]
    }
}

最新更新