0

所以,我已经看了几个小时了,我没有想法。我的应用程序返回一个 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)获取数据,并为每个键制作一个条形图(需要数据转换<==见)。然后我需要将它插入 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);
}

这确实让我得到了想要的数组。然后访问“子”键,例如:

snpsObj.snpList[0];

...希望返回,例如:

{
   "CC" : 23,
   "CT" : 36,
   "TT" : 12,
}

但这根本行不通。我能得到的最多是返回类似的东西:

allele_frequency : [object Object ]

我知道有一些基本的东西我只是在我头脑冰冷的头脑中忘记了......有什么建议吗?

Highcharts 需要格式化为数组的键和标签,例如:

类别:['C', 'T'] 数据:[3, 9] // C=3, T=9

4

1 回答 1

2

我想你想访问

snpsObj[ snpList[0] ]

通过使用括号表示法snpsObj.snpList[0]将尝试获取对象的“snpList ”属性snpsObj

顺便说一句,您可能希望使用而不是使用 for-in-loop 创建具有属性名称的数组Object.keys(即使您需要填充它以支持旧浏览器)。

于 2013-04-02T18:56:21.730 回答