0
{
  "data": [{
    "data": [{
      "Part": "1.75 L ICON (Glass)",
      "ProductionCounts": 1012620
    }, {
      "Part": "1.75 L Marg Mix (PET)",
      "ProductionCounts": 1003278
    }, {
      "Part": "1.75 L Authentics (PET)",
      "ProductionCounts": 457615
    }, {
      "Part": "1.0 L Margarita Mix / PET",
      "ProductionCounts": 660982
    }, {
      "Part": "other",
      "ProductionCounts": 1571985
    }]
  }, ],
  "dateArray": ["2011-01-01", "2011-02-01", "2011-03-01", "2011-04-01", "2011-05-01", "2011-06-01", "2011-07-01", "2011-08-01", "2011-09-01", "2011-10-01", "2011-11-01"],
  "xAxis": "Part",
  "yAxis": "ProductionCounts",
  "interestingMoments": []
}

json オブジェクトの値にアクセスしたい。json オブジェクトのフィールド名は、json オブジェクトを取得するたびに異なるため、xAxis と yAxis のフィールド名を別々に送信しています。

jsonData.data[0].data[0].xAxis にアクセスしようとすると、値ではなく undefined が返されます。フィールド名が毎回異なるため、このようにアクセスできないため、変数 jsonData.data[0].data[0].Part を介してアクセスしようとしています。

4

5 に答える 5

2

jsonData.data[0].data[0][jsonData.xAxis]jsonData.data[0].data[0][jsonData.yAxis]

http://jsfiddle.net/vsZkR/

于 2013-02-11T06:24:03.853 に答える
1

このようにjsonを使用する必要があります

var a = {
  "data": [{
    "data": [{
      "Part": "1.75 L ICON (Glass)",
      "ProductionCounts": 1012620
    }, {
      "Part": "1.75 L Marg Mix (PET)",
      "ProductionCounts": 1003278
    }, {
      "Part": "1.75 L Authentics (PET)",
      "ProductionCounts": 457615
    }, {
      "Part": "1.0 L Margarita Mix / PET",
      "ProductionCounts": 660982
    }, {
      "Part": "other",
      "ProductionCounts": 1571985
    }]
  }, ],
  "dateArray": ["2011-01-01", "2011-02-01", "2011-03-01", "2011-04-01", "2011-05-01", "2011-06-01", "2011-07-01", "2011-08-01", "2011-09-01", "2011-10-01", "2011-11-01"],
  "xAxis": "Part",
  "yAxis": "ProductionCounts",
  "interestingMoments": []
};

a.data[0].data[0][a.xAxis] // for access part values
a.data[0].data[0][a.yAxis]  // for acsess ProductionCounts values
于 2013-02-11T06:24:54.073 に答える
0

xAxisの場合、これだけで機能するはずです。

console.log( jsondata.xAxis );

ここを参照してください:jsFiddle

于 2013-02-11T06:22:51.987 に答える
0

これを試して :

var data={
  "data": [{
    "data": [{
      "Part": "1.75 L ICON (Glass)",
      "ProductionCounts": 1012620
    }, {
      "Part": "1.75 L Marg Mix (PET)",
      "ProductionCounts": 1003278
    }, {
      "Part": "1.75 L Authentics (PET)",
      "ProductionCounts": 457615
    }, {
      "Part": "1.0 L Margarita Mix / PET",
      "ProductionCounts": 660982
    }, {
      "Part": "other",
      "ProductionCounts": 1571985
    }]
  }, ],
  "dateArray": ["2011-01-01", "2011-02-01", "2011-03-01", "2011-04-01", "2011-05-01", "2011-06-01", "2011-07-01", "2011-08-01", "2011-09-01", "2011-10-01", "2011-11-01"],
  "xAxis": "Part",
  "yAxis": "ProductionCounts",
  "interestingMoments": []
};
console.log(data.xAxis);
console.log(data.yAxis);
于 2013-02-11T06:23:53.090 に答える
0

冗長な「データ」オブジェクトからラップを解除します。

http://jsfiddle.net/turiyag/cQNPm/

後できれいに見え、うまく機能します。JSON オブジェクトも JSLint に失敗しました。ここに投稿する前に、必ず JSLint または同様の製品を介してコードを実行してください。

log("jsonData.data[0][jsonData.yAxis]: " + jsonData.data[0][jsonData.yAxis]);
于 2013-02-11T06:34:45.843 に答える