我正在运行一些 Java 分析工具来进行 WES 分析。所以,我可以被认为是 Java 的新手 :( 顺便说一句,我使用 PharmCAT 来分析我的 VCF 文件。但我得到了这个错误:
com.google.gson.JsonSyntaxException: Apr 24, 2018 12:00:00 AM
我发现一个主题询问此错误,但由于我在 Java 方面的限制,我不知道如何解决我的问题。这是我的命令:
$ java -cp PharmCAT/build/pharmcat-0.7.0-all.jar org.pharmgkb.pharmcat.haplotype.NamedAlleleMatcher -vcf 路径/to/my/vcf -json 输出.json
它的回溯:
com.google.gson.JsonSyntaxException: Apr 24, 2018 12:00:00 AM
at com.google.gson.internal.bind.DateTypeAdapter.deserializeToDate(DateTypeAdapter.java:74)
at com.google.gson.internal.bind.DateTypeAdapter.read(DateTypeAdapter.java:59)
at com.google.gson.internal.bind.DateTypeAdapter.read(DateTypeAdapter.java:41)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:129)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:220)
at com.google.gson.Gson.fromJson(Gson.java:887)
at com.google.gson.Gson.fromJson(Gson.java:825)
at org.pharmgkb.pharmcat.util.DataSerializer.deserializeDefinitionsFromJson(DataSerializer.java:61)
at org.pharmgkb.pharmcat.haplotype.DefinitionReader.readFile(DefinitionReader.java:103)
at org.pharmgkb.pharmcat.haplotype.DefinitionReader.read(DefinitionReader.java:90)
at org.pharmgkb.pharmcat.haplotype.NamedAlleleMatcher.main(NamedAlleleMatcher.java:96)
Caused by: java.text.ParseException: Failed to parse date [“Apr 24, 2018 12:00:00 AM’]: Invalid number: Apr
at com.google.gson.internal.bind.util.ISO8601Utils.parse(ISO8601Utils.java:274)
at com.google.gson.internal.bind.DateTypeAdapter.deserializeToDate(DateTypeAdapter.java:72)
... 10 more
Caused by: java.lang.NumberFormatException: Invalid number: Apr
at com.google.gson.internal.bind.util.ISO8601Utils.parseInt(ISO8601Utils.java:311)
at com.google.gson.internal.bind.util.ISO8601Utils.parse(ISO8601Utils.java:129)
... 11 more
任何人都可以帮我指出问题并提供修复说明吗? 感谢您的考虑。
最佳答案
您需要创建一个 JsonDeserializer,在其中提供特定的日期格式,如下所示
GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.registerTypeAdapter(Date.class, new DateDeserializer());
试试这个链接:Here is one example
关于java - PharmCAT : JsonSyntaxException on date,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59609418/