2016-06-21 1 views
2

J'essaie d'utiliser Camel bindy pour traiter mon fichier csv. Les lignes du fichier ressemblent à ceci:Comment analyser le fichier CSV avec camel bindy, lorsque certaines colonnes ont des guillemets et d'autres pas?

1111;"2016-06-21";"12:15";"Test1";"1"; 
2222;"2016-06-21";"12:16";"Test2";"2"; 

Mon fichier modèle est: méthode

@CsvRecord(separator = ";") 
public class CsvBean implements Serializable { 

    @DataField(pos = 1) 
    private Integer key; 

    @DataField(pos = 2, pattern = "yyyy-MM-dd") 
    private Date date; 

    @DataField(pos = 3, pattern = "hh-mm") 
    private Date time; 

    @DataField(pos = 4) 
    private String title; 

    @DataField(pos = 5) 
    private int status; 
} 

et j'utilise unmarshall (Bindy). L'exception est que je suis:

java.lang.IllegalArgumentException: Parsing error detected for field defined at the position: 3, line: 1 
    at org.apache.camel.dataformat.bindy.BindyCsvFactory.bind(BindyCsvFactory.java:207) 

Je suppose que le problème est que le premier « id » la valeur est sans les guillemets et le reste des colonnes ont. Comment puis-je le résoudre?

Répondre

2

Votre patron pour la position 3 est faux. Essayez le code ci-dessous

@DataField(pos = 3, pattern = "hh:mm") 
+0

Oh oui. Merci beaucoup! –