我正在尝试解析 GFF 文件并搜索特定的基因 ID,如果找到,则将该基因 ID 的整行转换为 JSONArray 的元素。
但是,当我执行上述操作时,数组中不存在列标题:
try{
BufferedReader reader = new BufferedReader(new FileReader(filepath));
json = "";
StringBuilder sb = new StringBuilder();
String line;
while ((line = reader.readLine()) != null ) {
if (line.contains("Solyc02g065040")){
sb.append(line);
sb.append("\n");
System.out.println(sb);
}
else{
//do nothing
}
}
json = sb.toString();
System.out.println(json);
reader.close();
String [] gffArray = json.split("\n");
System.out.println(gffArray);
JSONArray jsArray = new JSONArray();
for (int i = 0; i < gffArray.length; i++) {
jsArray.put(gffArray[i]);
}
System.out.println(jsArray);
输出如下所示:
["SL3.0ch02\tmaker_ITAG\tgene\t36723123\t36723359\t.\t-\t.\tID=gene:Solyc02g065040.1;Alias=Solyc02g065040;Name=Solyc02g065040.1;length=236"]
而我希望它看起来像这样,保留标题:
["seqname":"SL3.0ch02", "source":"maker_ITAG","feature":"gene", "start":"36723123", "end":"36723359","attribute":"ID=gene:Solyc02g065040.1;Alias=Solyc02g065040;Name=Solyc02g065040.1;length=236"]
我需要它是这样的,这样我就可以根据这些在 javafx 中填充一个表,方法是:
(jsArray.getJSONObject(i).getString("seqname"))
(jsArray.getJSONObject(i).getString("gene"))
任何帮助将不胜感激,谢谢。