将一个JSON返回拆分为几个对象



所以,我一直在看这个几个小时,我没有想法。我的应用程序返回一个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(即使你需要填充它来支持旧的浏览器)。

最新更新