2016-10-04 33 views
1

我的目标是将jsonObject转换为Class。我想只添加在Class中被赋值的字段。例如:json对象包含50个字段。类有4个领域。我想只映射确切的4个字段,而不需要在类中添加46个添加忽略。Jackson ObjectMapper忽略所有没有注释的属性

JSON:

{ 
    "id": "1", 
    "name": "John", 
    "Address": "Some Address 7009", 
} 

类别:

public static class User { 
    Integer id; 
    String name; 

    public User (@JsonProperty("id")Integer id, @JsonProperty("name")String name { 
      this.id= id; 
      this.name= name; 
    } 
    .... 
} 

用户类没有地址字段。我的目标是排除它,因为它没有注释。

+0

您需要为您不想要的剩余属性添加@JsonIgnore – Nimesh

+0

您是否阅读我的问题? – TeodorKolev

+0

这是不可能的。你可以在剩下的属性上分配@JsonIgnore,或者你可以做周转,你可以改变json键不匹配对象属性,反之亦然。 – Nimesh

回答

3

标注与@JsonIgnoreProperties类,如下:

@JsonIgnoreProperties(ignoreUnknown = true) 
public class User { 
    ... 
} 

ignoreUnknowntrue,是无法识别的(也就是说,没有接受他们制定者或创作者)的所有属性都没有出现警告忽略(尽管未知属性的处理程序(如果有的话)仍将被调用)。

+0

这是用于任何新的属性,这是不是在类 – Nimesh

+0

@Naman中可用请你澄清你的评论? –

+0

TeodorKolev在类中有40个属性,在json中有40个键,他只希望将4个属性转换为Java对象属性。剩下的应该是默认值,如null,0或其他。提供课堂级别的注释不会解决这个问题 – Nimesh

相关问题