2015-05-26 1 views
0

У меня есть JSONКак отобразить JSON с обнуляемыми свойствами массива в Pojo с помощью WildFly Resteasy

{ 
    "name": "volo", 
    "friends": ["joe", "alex"] 
} 

и Java POJO

class Person { 
    private String name; 
    private Set<String> friends; 

    //constructor, getters, setters 
} 

метод POST:

@POST 
@Consumes("application/json") 
public Response createPerson(Person person) { 
    //logic 
} 

Это работа хорошее когда идут POST или PUT, и JSON обрабатывается POJO, но когда

"friends": null 

WildFly Resteasy не может разобрать JSON для POJO и ответ с ошибкой возвращается

com.fasterxml.jackson.databind.JsonMappingException: N/A (through reference chain: dk.systematic.beacon.workspace.WorkspaceInfo["friends"]) 

ли кто-нибудь знает, как исправить это с некоторой аннотацией или дополнительной настройки?

+0

Возможный дубликат [JSON: JsonMappingException при попытке десериализации объекта с нулевыми значениями] (http://stackoverflow.com/questions/18096589) – lefloh

ответ

0

Проблема была в инкубационном методе

Перед исправлением:

public void setFriends(Set<String> friends) { 
    this.friends = new HashSet<>(friends) 
} 

Чтобы исправить просто нужно добавить Validation

public void setFriends(Set<String> friends) { 
    if (friends != null) { 
    this.friends = new HashSet<>(friends) 
    } 
} 

Надеемся, что это поможет избежать тех же ошибок для других.