我目前正在尝试加载 BLAST 数据(来自一个很酷的生物实验)并使用Dynatable显示它。我是 JSON 和 Javascript 的新手,但我想我已经开始并运行了。问题是 JSON“对象”中有一个嵌套实例,我无法将它加载到 Dynatable 中。
这是 JSON 的片段
[{
"Hit_num": "1",
"Hit_id": "gi|495426285|ref|WP_008150982.1|",
"Hit_accession": "WP_008150982",
"Hit_hsps": {
"Hsp": {
"Hsp_num": "1",
"Hsp_bit-score": "202.986",
"Hsp_score": "515",
"Hsp_evalue": "1.7033e-61"
}
}
}, {
"Hit_num": "2",
"Hit_id": "gi|495936315|ref|WP_008660894.1|",
"Hit_accession": "WP_008660894",
"Hit_hsps": {
"Hsp": {
"Hsp_num": "1",
"Hsp_bit-score": "196.052",
"Hsp_score": "497",
"Hsp_evalue": "8.4357e-59"
}
}
}, {
"Hit_num": "3",
"Hit_id": "gi|495936314|ref|WP_008660893.1|",
"Hit_accession": "WP_008660893",
"Hit_hsps": {
"Hsp": {
"Hsp_num": "1",
"Hsp_bit-score": "185.652",
"Hsp_score": "470",
"Hsp_evalue": "6.08306e-55"
}
}
}]
如您所见,它有一个“Hit_hsps”和“Hsp”嵌套在其中。但是每个命中只有一个 Hit_hsps/HsP 实例。
最好的方法是什么?扁平化 JSON 文件还是有更巧妙的方法来处理 Dynatable 中的这种嵌套数据?
我正在使用此代码来显示表格
$(document).ready(function () {
$.dynatableSetup({
table: {
defaultColumnIdStyle: 'trimDash' //Make it accept _ spaced headers
}
});
$('#remote').dynatable({
dataset: {
records: JSON.parse($('#blast').text()) //Parse
}
});
});
整个系列都可以在JSFiddle上找到