FasterXML / FasterXML/jackson-dataformats-text
Add support for "name:type" style Headers
- Dominant language
- Java
- Stars
- 455
- Forks
- 164
- Avg merge
- 6d 10h
- Merged PRs (30d)
- 2
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:
1. Support mapping to existing small set of types (probably allowing case-insensitive type definition)
2. Support configurability of extension types, by providing converters from `String` value into target types.
For (2) there is also additional step needed: whereas we could expose `JsonToken` values for:
1. Strings
2. Numbers
3. Booleans
4. 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.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.