FasterXML / FasterXML/jackson-dataformats-text

Add support for "name:type" style Headers

未关闭
#474 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
csv
主要语言
Java
星标
455
派生
164
平均合并
6 天 10 小时
30 天内合并 PR
2

描述

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.

贡献指南

这个仓库没有索引到贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。