【发布时间】:2013-08-22 22:10:11
【问题描述】:
我有一个 json 对象,其属性名称如下:itemsRequired、sortable_list。在我的 ObjectMapper 中,我有
mapper.setPropertyNamingStrategy(PropertyNamingStrategy.CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES);
sortable_list 被映射到 POJO 中的适当属性,但 itemsRequired 被忽略。如果我删除PropertyNamingStrategy,则itemsRequired 有效,sortable_list 无效。如果我希望两者一起工作应该怎么做?
我正在使用 fastxml 库。我也尝试过 codehaus 的 jackson,结果相同。
更新:POJO如下,
@JsonIgnoreProperties(ignoreUnknown = true)
@JsonInclude(Include.NON_NULL)
public class CreateList extends Header {
private String question;
private String placeholder;
private String help;
private int itemsRequired;
private List<String> list;
// Getter and Setter methods
}
JSON 是,
"create": {
"heading": "Activities Available to You",
"question": "List at least four activities at school and in your community that you may want to try out.\n",
"placeholder": "List an activity",
"help": "You can only have 10 list items",
"list": [],
"items_required": 4
}
如果我有上面的 JSON,一切正常。但是当我将 JSON 更改为时,事情不起作用,
"create": {
"heading": "Activities Available to You",
"question": "List at least four activities at school and in your community that you may want to try out.\n",
"placeholder": "List an activity",
"help": "You can only have 10 list items",
"list": [],
"itemsRequired": 4
}
itemsRequired 在后一种情况下被忽略。
我希望它在这两种情况下都能工作,无论是命名为items_required 还是itemsRequired。
【问题讨论】:
-
您可以使用 JsonProperty 注释 (jackson.codehaus.org/1.1.2/javadoc/org/codehaus/jackson/…) 能否也向我们展示您的 POJO 类和示例 JSON?
-
更新了问题。
-
你解决了吗?我有同样的问题
-
正如下面的回答中提到的,我们改变了我们的命名约定以使用下划线而不是驼峰式。