現在、(クールな生物学的実験から) 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 インスタンスが 1 つしかありません。
最善の方法は何ですか?JSON ファイルをフラット化しますか、それとも Dynatable でこの種のネストされたデータを処理するためのより独創的な方法はありますか?
このコードを使用してテーブルを表示しています
$(document).ready(function () {
$.dynatableSetup({
table: {
defaultColumnIdStyle: 'trimDash' //Make it accept _ spaced headers
}
});
$('#remote').dynatable({
dataset: {
records: JSON.parse($('#blast').text()) //Parse
}
});
});
束全体がJSFiddleで利用可能です