0

jsonを使用してページからいくつかの値を保存し、後でphpファイルでこれらの値/変数にアクセスしようとしています。さて、私は一般的にjsonとjavascriptに不慣れであり、これを経験した皆さんにとってはばかげて単純かもしれない問題の解決策を見つけるのに何時間も苦労しています。

var invoice_data = {

"client":[
{
    "client-name" : "",
    "client-address" : "",
    "client-address-2" : "",
    "client-city-state" : "",
        "client-country" : ""
}
],

"shoppingcart":[ 
    {
    "1" : {"item-name":"", "qty":"", "price":"", "discount":"", "subtotal":""}
    }
],

};

ですから、この継承は実際には得られていないのです。つまり、「shoppingcart」を作成する「client」オブジェクトを作成したのと同じように、ユーザーが複数のアイテムを注文すると、その詳細も格納する別のサブオブジェクトを作成する必要があります。

"shoppingcart":[ 

    {   
    "1" : { "item-name":"", "price":"", "discount":"" }
    "2" : { "item-name":"", "price":"", "discount":"" }
    }
],

したがって、console.log(invoice_data.shoppingcart); 「shoppingcart」オブジェクトを取得しましたが、invoice_data.shoppingcart.1またはinvoice_data.shoppingcart.2にアクセスできません。invoice_data.shoppingcartまたはinvoice_data.clientにアクセスするのと同じように、1つまたは2つのサブオブジェクトにアクセスする方法はありますか?

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

編集:私は配列としてアクセスできますが、そのオプションには興味がありません。理想的には、その名前を介してサブオブジェクトにアクセスしたいと思います。

4

3 に答える 3

1

配列構文を削除します。

これを変える:

"client":[
{
    "client-name" : "",
    "client-address" : "",
    "client-address-2" : "",
    "client-city-state" : "",
    "client-country" : ""
}
]

これに:

"client": {
    "client-name" : "",
    "client-address" : "",
    "client-address-2" : "",
    "client-city-state" : "",
    "client-country" : ""
}

ショッピングカートについても同じことが言えます。

于 2013-03-12T23:42:39.900 に答える
0

は有効なJavascript変数名ではないinvoice_data.shoppingcart.1ため、アクセスできません。1オブジェクトのキーが有効な変数名でない場合は、配列表記を使用する必要がありますinvoice_data.shoppingcart[1]

編集:私はそれを見ませんでしたが、マットが指摘したように、配列構文も削除する必要があります。

于 2013-03-12T23:41:53.020 に答える
0

あなたのshopping_cartは配列です。

あなたはしたくない:

shopping_cart : {
    1 : { name : "...", price : "..." },
    2 : { ... }
}

あなたが欲しい:

shopping_cart : [
    { name : "..." },
    { ... }
]

次に、次のように言ってアクセスします。

shopping_cart[0].name;
shopping_cart[0].price;

など。

配列も1ではなく0から始まります。これは継承ではなく、単なるコレクションです。

于 2013-03-12T23:45:37.203 に答える