0

わかりました、この質問はばかげているかもしれませんが、私は本当にこれにこだわっています.

次のような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 構造を組み合わせる方法について、私が見逃していることはありますか?

どうもありがとうございました。

4

3 に答える 3

1

なんでこんなことしないの?

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"}]
    }
}​
于 2012-11-20T10:04:38.370 に答える
0

JSON は と にカプセル化する必要が{あり}ます。

したがって、JSON はおそらく次のようになります。

{
    "order": {
        "currency": "eur",
        "order_items": [
            {
                "id": 3,
                "quantity": 1
            },
            {
                "id": 67,
                "quantity": 1
            }
        ]
    }
}
于 2012-11-20T10:00:32.260 に答える
0

Koen が言うように、最初のプロパティが順序であるオブジェクトを作成し、すべてのオブジェクトを一度に文字列化できます。

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);

しかし、オブジェクトを直接「注文」する必要があると思います

よろしく、

于 2012-11-20T10:19:56.500 に答える