我们有一张350多列的表格。 pojo类生成并且getters命令会搞砸。试图从jackson使用csvmapper,但它会根据getter命令生成csv。 @JsonPropertyOrder由于有许多列而不可行。我们在xml中维护列顺序,并且可以在运行时生成字段顺序数组。我们是否可以在运行时重写以提供用于属性排序的字段名称数组?我们可以使用注释introspector进行自定义吗?jackson serialize csv物业订单
0
A
回答
1
我相信在这里你唯一的选择是uniVocity-parsers,因为它可以让你选择写哪些列以及按什么顺序:
CsvWriterSettings settings = new CsvWriterSettings();
// Sets the file headers (used for selection only, these values won't be written automatically)
settings.setHeaders("Year", "Make", "Model", "Description", "Price");
// Selects which fields from the input should be written. In this case, fields "make" and "model" will be empty
// The field selection is not case sensitive
settings.selectFields("description", "price", "year");
//configures the writer process java beans with annotations (assume TestBean has a few annotated fiedls)
settings.setRowWriterProcessor(new BeanWriterProcessor<TestBean>(TestBean.class));
// Creates a writer with the above settings;
CsvWriter writer = new CsvWriter(new File("/path/to/output.csv"), settings);
// Writes the headers specified in the settings
writer.writeHeaders();
//creates a bean instance for writing
TestBean bean = new TestBean();
bean.setPrice(new BigDecimal("500.33"));
bean.setDescription("Blah,blah");
bean.setYear(1997);
//writes it
writer.processRecord(bean);
writer.close();
希望它能帮助。
披露:我是这个libary的作者,它是开源和免费的(Apache 2.0许可)
0
注意@JsonPropertyOrder
不一定必须包括所有的属性,只是那些你是包括系列化。但要指示要序列化的内容,您可能需要使用@JsonProperty
(用于指示要序列化的属性)和不同可见性(包括ObjectMapper.setVisibility()
默认值,或通过@JsonAutoDetect
为每个POJO)的组合。
不过,假设你不希望使用@JsonPropertyOrder
,您可以:
- 在
JacksonAnnotationIntrospector
覆盖方法读取注解,提供自己的实现使用其他来源的(并不需要在所有来自注解) - 如果使用杰克逊2.8.0,有指定每个类的默认值一些事情(见
ObjectMapper.configOverride()
对象),包括产权制度,
同样,你可以overri新途径如果要使用自定义条件进行包含/排除,则该方法会查找@JsonProperty
(findNameForDeserialization()
和/或findNameForSerialization()
)。 还有其他包含/排除机制,如JSON视图(@JsonView
),JSON过滤器。
相关问题
- 1. JAXB物业订单
- 2. HQL按物业订单指定订单?
- 3. PhpMyadmin CSV导入数据订单?我的CSV是从CSV订单中删除的?
- 4. 物业名单 - 读写(iPhone)
- 5. CSV输出错误订单
- 6. 如何先通过物业订购集合,然后通过另一家物业订购集合,而不管第一个物业上的领带是?
- 7. 物业
- 8. ,物业
- 9. 如何订购清单中的物品并删除基于物业的重复物品?
- 10. linq OrderBy物业上的物业
- 11. 发送表单与父()。serialize()
- 12. PHP购物车显示订单
- 13. 返回/取消订单 - 购物车
- 14. 将订单项添加到购物车
- 15. 物业类型
- 16. 在VB.NET物业
- 17. 物业更新
- 18. 加入物业
- 19. FormsAuthenticationTicket.UserData物业
- 20. NetSuite - CSV导入销售订单问题
- 21. Teaplix库存CSV订单未导入
- 22. 解析和订单csv文件
- 23. Jackson:序列化EER专业化
- 24. 通过儿童在Grails中的物业订购
- 25. Silverlight的TreeMap的文本装订与物业列表项
- 26. 什么是JSONObject的Jackson 2等价物?
- 27. 显示订购多个物品的订单
- 28. 与其他物业
- 29. PrivateObject不找物业
- 30. yaml物业价值