java - PharmCAT : JsonSyntaxException on date

标签 java json

我正在运行一些 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/

相关文章:

java - 如何在 IntelliJ 中的 Java Swing (JGoodies) 中使用 FormLayout

java - Neo4jRepository 中的 findAll 方法对于嵌套属性返回 null

php - 使用 php 生成脚本或使用 json

angularjs - 让 Angular 与 Moodle Web 服务配合使用

json - 将数字从 float64 转换为 Int64 不正确

java - 每个实例记录器,不好的做法?

Java - super 调用问题

javascript - Jquery 从 JSON 结果中获取特定值?

java - gson反序列化: Reference owner of nested object

Java 按唯一索引号对值进行排序