这是我的JsonObject
JSONObject input = new JSONObject("{\n" +
" \"ColumnNames\":[\"col1\", \"col2\", \"col3\", \"col4\", \"col5\"]\n" +
"}");
我的POJO班
public class RequestClass {
private List<String> ColumnNames;
public void setColumnNames(List<String> ColumnNames) {
this.ColumnNames = ColumnNames;
}
public List<String> getColumnNames() {
return this.ColumnNames;
}
}
尝试在ObjectMapper的帮助下将JsonObject转换为pojo类对象,如下所示-
ObjectMapper mapper = new ObjectMapper();
//mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
RequestClass request = null;
try {
request = mapper.readValue(input.toString(), RequestClass.class);
} catch (Exception e) {
e.printStackTrace();
}
在输出中获取异常
com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "ColumnNames" (class RequestClass), not marked as ignorable (one known property: "columnNames"])
at [Source: {"ColumnNames":["col1","col2","col3","col4","col5"]}; line: 1, column: 17] (through reference chain: RequestClass["ColumnNames"])
私有属性的名称ColumnNames
实际上是不相关的。通过内省,查看吸气剂和吸气剂,可以找到该特性。按照约定,如果您有名为getColumnNames
和的方法setColumnNames
,它们将定义一个名为columnNames
(lowercase c
)的属性。
因此,您有两种选择:
columnNames
,或后者是通过在getter和setter上使用@JsonProperty实现的,如下所示:
@JsonProperty("ColumnNames")
public List<String> getColumnNames() {
return this.ColumnNames;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句