- 
          
 - 
                Notifications
    
You must be signed in to change notification settings  - Fork 152
 
Description
Currently use of Header row (and manual construction of CsvSchema) assume that headers only specify name of column position. But there exists usage, wherein header line contain type mappings too:
name:string,enabled:boolean, ...
It would be great to support this.
There is an immediate problem with "type" definition: as things are, only a very limited set of types is recognized for CsvColumn. But we could divide implementation into two main parts:
- Support mapping to existing small set of types (probably allowing case-insensitive type definition)
 - Support configurability of extension types,  by providing converters from 
Stringvalue into target types. 
For (2) there is also additional step needed: whereas we could expose JsonToken values for:
- Strings
 - Numbers
 - Booleans
 - nulls
 
everything else would need to be exposed as JsonToken.VALUE_EMBEDDED_OBJECT.
But if so, any and all types could be supported -- as long as jackson-databind deserializers (JsonDeserializer impelmentations) consider possibility of embedded type.
Doing above is not trivial, but would be a very powerful mechanism for customized binding from CSV data. Some amount of duplication would likely result (for Converters) but that seems acceptable.