- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在使用 jackson-dataformat-csv
将 POJO 集合导出为 CSV,如下所示:
CsvSchema.Builder schemaBuilder = CsvSchema.builder()
.addColumn("id")
.addColumn("name")
etc...
CsvSchema schema = schemaBuilder.build().withHeader();
CsvMapper mapper = new CsvMapper();
mapper.enable(CsvGenerator.Feature.ALWAYS_QUOTE_STRINGS);
String csv = mapper.writer(schema).writeValueAsString(pojoCollection);
我想在将每个字段值写入 CSV 之前对其进行检查,并可选择修改该值以防止 Excel、表格等可能执行的公式或其他内容。例如,如果值以 @
或 =
开头,那么我可能会在该值前面加上 '
字符以防止执行。
如何配置 CsvMapper
以便为写入 CSV 的每个值获得回调?
最佳答案
两者都是CsvGenerator
和 CsvEncoder
,它执行处理 CSV 输出值的作业,似乎不包括回调选项。所以我认为jackson无法实现这个目标。
当然,这个任务可以通过其他方法解决。
在不使用其他库的情况下,可以对 pojoCollection
进行预处理,以清理字符串字段。不知道这些 pojo 的实际结构,选择可能是:
如果 pojo 是紧凑的并且要处理的字段是众所周知的,则创建一个方法,该方法期望将对 pojo 各自的 getter 和 setter 的引用作为 args,调用 getter 来检索值,清理它并设置干净的值(value)。遍历 pojoCollection
来处理它们。
如果string字段较多,pojo类型不同,都需要清洗,则使用反射海量处理所有String字段。
但是,如果您不受限于使用 jackson,则有一些库提供了使用回调的可能性。例如,在 Univocity parsers 中, ObjectRowWriterProcessor允许结合多种转换可能性来实现它。
关于java - 配置 CsvMapper 以检查写入的每个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54754919/
我想将 csv 文件读入字符串列表。我还希望它修剪空格并允许尾随逗号。我的 csv 文件如下所示: abcdefghijklmno , pqrstuwzabcdefh, ijklmnopqrstuwy
最近一直在尝试使用 JsonGenerator 以流式传输方式生成 JSON。即使您没有将 OutputStream 链接到直接输出来读取内容,如果您愿意,您也可以在最后读取整个内容。 我正在尝试用
我正在使用 jackson-dataformat-csv 将 POJO 集合导出为 CSV,如下所示: CsvSchema.Builder schemaBuilder = CsvSchema.buil
我正在使用 Jackson CSVMapper 将制表符分隔的文本文件读入 java 对象列表,并将其写回到另一个制表符分隔的文本文件中。我的类(class)如下所示: @Getter @Setter
将 CsvMapper 与 @JsonPropertyOrder 结合使用时,所有未显式命名的字段都将放在 CSV 记录的末尾。这意味着拼写错误会导致不同的 CSV 排序。 示例: public cl
出于某种原因,尽管配置了 FasterXML Jackson CSV 映射器来创建基于 POJO 的模式,但它坚持认为没有提供合适的配置。我得到以下异常: com.fasterxml.jackson.
如何在不循环计算行数的情况下从 InputStream 或 CsvMapper 获取行数? 下面我有一个从 CSV 文件创建的 InputStream。 InputStream content = (
我正在使用 jackson 将 POJO 序列化为 CSV。我的问题是我无法弄清楚如何在序列化时省略某些字段。我不想注释 POJO,因为它会影响需要这些字段的 JSON 和 XML 序列化。例如 pu
我有一个 Java 方法,它接收一个 CSV 值字符串和一个整数索引来引用 CSV 字符串中要解析的列。该方法返回与 CSV 字符串中的整数索引关联的值。 例如,如果我有一个带有标题的 CSV 字符串
有人可以帮忙吗?我坚持读取 csv 文件并将其序列化到 POJO 上。我正在使用 jackson 库中的 CsvMapper。阅读和序列化部分已完成并且工作正常。问题是当用户移动标题/列时导致序列化做
我是一名优秀的程序员,十分优秀!