0

I have JSON

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

and Java POJO

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

  //constructor, getters, setters
}

POST method:

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

This is work nice when POST or PUT request are coming and JSON is parsed to POJO, but when

"friends": null

WildFly RestEasy cannot parse JSON to POJO and Response with error is returned

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

Does anybody knows how to fix this with some annotation or additional setup?

  • Possible duplicate of [JSON: JsonMappingException while try to deserialize object with null values](http://stackoverflow.com/questions/18096589) – lefloh May 27 '15 at 07:41

1 Answers1

0

Problem was in setter method

Before fix:

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

To fix just need to add validation

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

Hopefully this will help to avoid same mistakes for others.