FasterXML / FasterXML/jackson-dataformats-text

Add support for "name:type" style Headers

Đang mở
#474 0 bình luận 0 reaction 0 người được giao Xem trên GitHub
csv
Ngôn ngữ chính
Java
Star
455
Fork
164
Merge trung bình
6 ngày 10 giờ
Pull request đã merge (30 ngày)
2

Mô tả

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.

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.