我有一个springrestapi,它通常只输出json。
现在我还想导出一些端点的csv。
Jackson有一个图书馆
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-csv</artifactId>
<version>2.8.5</version>
</dependency>
我可以用spring的 HttpMessageConverter
.
但是,我需要排除csv中json中存在的一些字段,因此我不能使用 @JsonIgnore
注解。有没有一种方法可以为csv使用不同的忽略属性/注解?
作为另一种选择,我考虑使用一个自定义接口来提取值,以便在开始之前序列化这些值。 List<CSVableDTO>
-> List<Map<String,?>>
->csv文件。但我想避免这种情况,因为它涉及额外的示例创建和额外的编码,而不是仅仅使用新的注解。
java类示例:
public class MyDTO {
@CSVIgnore
public int id;
public String name;
public String property;
@CSVIgnore
public String ref;
}
json示例:
[
{
"id": 42,
"name": "Example",
"property": "FooBar",
"ref": "42:Not:FooBar:1337"
}
]
预期csv结果:
"name";"property"
"Example";"FooBar"
1条答案
按热度按时间k4aesqcs1#
请考虑一下
JsonView
机制。你会得到这样的结果:这只是一个非常粗略的草图,但它应该给你一个想法。