所以,我一直在关注这个问题几个小时,而且我没有想法。我的应用程序返回一个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)获取数据并为每个密钥创建一个条形图(需要data transformation< == see)。然后我需要将它插入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需要以数组格式化的键和标签,例如:
类别:['C','T'] 数据:[3,9] // C = 3,T = 9
答案 0 :(得分:2)
我想你想要访问
snpsObj[ snpList[0] ]
使用bracket notation,snpsObj.snpList[0]
会尝试获取snpsObj
对象的“snpList”属性。
顺便说一句,您可能希望使用Object.keys
(即使您需要将其填充以支持旧版浏览器)而不是您的for-in-循环来创建具有属性名称的数组。