Jackson JsonMappingException:无法识别的列'C':已知列“A”,“B”

Posted

技术标签:

【中文标题】Jackson JsonMappingException:无法识别的列\'C\':已知列“A”,“B”【英文标题】:Jackson JsonMappingException: Unrecognized column 'C': known columns "A","B"Jackson JsonMappingException:无法识别的列'C':已知列“A”,“B” 【发布时间】:2017-12-17 23:19:33 【问题描述】:

如何从 myBean 创建部分表示

类 MyBean 一种, 乙, C

我想仅为 A、B 属性创建 csv

使用下面的代码抛出异常

CsvSchema schema = CsvSchema.builder().
                    .addColumn("A")
                    .addColumn("B")
                    .build();

CsvMapper 映射器 = 新 CsvMapper(); ObjectWriter writer = mapper.writer(schema);

字节[] csv = writer.writeValueAsBytes(bean);

得到异常:

JsonMappingException:无法识别的列“C”:已知列 "A","B"

我正在使用杰克逊 2.7.3

谢谢

【问题讨论】:

Ignoring new fields on JSON objects using Jackson的可能重复 你看过杰克逊的 JsonView 了吗?几天前我也有类似的问题,希望对您有所帮助:***.com/questions/45004348/… 【参考方案1】:

用 @JsonIgnoreProperties(ignoreUnknown = true) 注释你的类

@JsonIgnoreProperties(ignoreUnknown = true)
class MyBean A, B, C 

【讨论】:

【参考方案2】:

像这样配置 CSV Mapper

 CsvMapper mapper = new CsvMapper(); 
 mapper.configure(JsonGenerator.Feature.IGNORE_UNKNOWN,true);

【讨论】:

以上是关于Jackson JsonMappingException:无法识别的列'C':已知列“A”,“B”的主要内容,如果未能解决你的问题,请参考以下文章

Jackson和FastJson性能谁更快

jackson 解析json ,使用注解

jackson学习之二:jackson-core

jackson啥意思

jackson使用入门

Jackson使用手册