2017-02-22 30 views
1

我有一個JSON字符串名爲primarySkillStr如何使用ObjectMapper將字符串轉換爲java8中的列表?

[ 
    { 
    "id": 3, 
    "roleIds": [ 
     2 
    ], 
    "rating": 2 
    } 

] 

我嘗試它,如下所示映射到對象:

primarySkillList = mapper.readValue(primarySkillStr, 
    new TypeReference<List<PrimarySkillDTO>>() {}); 

但是蔭轉換這一個List時,則roleIds列表是null。 我做錯了什麼,或者有其他方法嗎?

這是我的DTO

public class PrimarySkillDTO { 
    private Integer id; 
    private Integer rating; 
    private List<Integer> roleIds; 
    private String name; 
} 

我在PrimarySkillDTO

@Data 
@Builder 
@AllArgsConstructor 
@JsonIgnoreProperties(ignoreUnknown = true) 
@JsonInclude(JsonInclude.Include.NON_NULL) 
@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class) 
+0

似乎在這裏工作:[PrimarySkillDTO(ID = 3, roleIds = [2],rating = 2)] - 你的DTO是怎樣的? –

+1

java8如何與這個問題有關?難道不是傑克遜? –

+0

@ Nick-vanderhoven新增DTO –

回答

4

問題下面的註解是,你JsonNaming註釋需要snake_case和你不使用它。

爲了解決它

  • 移除註釋@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class)
  • 或,重命名變量在JSON字符串role_ids
+0

好的。我明白了。謝謝了很多 –

+0

太棒了!隨時接受答案,如果它幫助你。 –