Reputation: 576
{
"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": []
}
I want to access the value of json object. Field name of json object will be different each time I am getting the json object so I am sending the field name in xAxis and yAxis as separate.
When I am trying to access the jsonData.data[0].data[0].xAxis , it is giving me undefined instead of value. I can't access like this as field name will be different each time so I am trying to access it through variable jsonData.data[0].data[0].Part .
Upvotes: 0
Views: 644
Reputation: 2887
I would unwrap it from the redundant "data" object.
http://jsfiddle.net/turiyag/cQNPm/
It looks cleaner afterward, and works just fine. Your JSON object also failed JSLint. Always run your code through JSLint or a similar product before posting here.
log("jsonData.data[0][jsonData.yAxis]: " + jsonData.data[0][jsonData.yAxis]);
Upvotes: 0
Reputation:
you should use json like this
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
Upvotes: 1
Reputation: 97672
jsonData.data[0].data[0][jsonData.xAxis]
and jsonData.data[0].data[0][jsonData.yAxis]
Upvotes: 2
Reputation: 40639
Try this :
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);
Upvotes: 0
Reputation: 100175
for xAxis, just this should work:
console.log( jsondata.xAxis );
See here: jsFiddle
Upvotes: 0