所以,我一直在看这个几个小时,我没有想法。我的应用程序返回一个JSON对象,我需要解析它的4个数据集,使3个图表和一个表。对于我的生活,我不知道如何"提取"每一部分。JSON看起来像:
{
"allele":{
"12426597":{
"??":4,
"CC":3,
"TT":4,
"CT":12
},
"878198":{
"??":4,
"AA":1,
"AC":15,
"CC":3
},
"6447271":{
"??":4,
"GG":14,
"AG":5
}
},
"haplo":{
"CT,AG,AC":3,
"TT,GG,AC":1,
"CC,GG,CC":1,
"TT,AG,CC":1,
"TT,GG,CC":1
},
"exercise":"p1"
}
我需要获取三个键/id(12426597、878198、6447271)的数据,并为每个键/id制作一个条形图(需要进行数据转换<==参见)。然后我需要把它插入Highcharts…它们的API调用键和值的有序数组。
我想先做一个id数组:
var snpsObj = data.allele_frequency; // data returned from $.getJSON
var snpList = [];
for (prop in snpsObj) {
if (!snpsObj.hasOwnProperty(prop)) {
continue;
}
snpList.push(prop);
}
这就得到了我想要的数组。然后访问"sub"键,例如:
snpsObj.snpList[0];
…希望返回,像这样:
{
"CC" : 23,
"CT" : 36,
"TT" : 12,
}
但这根本不起作用。我最多只能得到这样的返回:
allele_frequency : [object Object ]
我知道有一些基本的东西我只是忘记在我的头冷雾的头脑…有什么建议吗?
Highcharts需要以数组形式格式化键和标签,如:
categories: ['C', 'T']data: [3,9]//C=3, T=9
我想你想访问
snpsObj[ snpList[0] ]
通过使用括号表示法,snpsObj.snpList[0]
将尝试获取snpsObj
对象的"snpList" 属性。
Btw,而不是你的for-in-loop创建数组的属性名,你可能想要使用Object.keys
(即使你需要填充它来支持旧的浏览器)。