如何使POJO动态化,使其忽略json标签,但在java中使用jackson读取该标签下的值?
问题描述:
我有一个父DAO:如何使POJO动态化,使其忽略json标签,但在java中使用jackson读取该标签下的值?
@XmlRootElement//(name="metadata")
public class FolderAttributes {
private Map nameValueForListValue;
儿童DAO:
@XmlAccessorType(XmlAccessType.FIELD)
public class ListWrapper {
@XmlElementWrapper(name = "attrValue")
private List<Object> list;
JSON请求工作(如果我使用 “元数据” 的名称作为根元素):
"metadata": {
"nameValueForListValue": {
"signed": {
"attrValue": [
"ahsdfhgakjf"
]
},
"id": {
"attrValue": [
"12345678",
"87654321"
]
},
.......... continues
我不想在请求中使用“nameValueForListValue”标签,而应该足够聪明地阅读没有该标签的其余值。看起来它总是需要在请求上具有param name“nameValueForListValue”。有没有任何注释可以让我的工作更轻松?我正在使用Java 6 & jackson 1.9。
答
怎么样使用@JsonAnySetter杰克逊注释
这将是这样的:
@XmlRootElement//(name="metadata")
public class FolderAttributes {
private Map nameValueForListValue;
@JsonAnySetter
public void genericSetter(String key, Object value){
nameValueForListValue.put(key, value);
}
}
这whay任何未知的领域可以通过此setter来处理。
答
@JsonInclude(JsonInclude.Include.NON_NULL)
欢迎SO。请在下次使用代码块时为您的问题添加可读性。 –
看看这个问题:http://stackoverflow.com/q/40686368/13075。我认为这是关于相同的功能。 – Henrik