CranberryCode
CranberryCode

Reputation: 15

@ResponseBody setting all values as null for an object. Spring Controller

The controller works just fine if the controller consumes an APPLICATION_XML_VALUE, but it fails to work with APPLICATION_JSON_VALUE. The XML request fills all fields correctly and the Json version every field will be null. Not sure if it's maybe something wrong with my json request?

@ApiOperation(value = "Update Thing")
@ApiResponses(value = { @ApiResponse(code = 200, message = "OK", response = MembershipType.class), @ApiResponse(code = 503, message = " broke"),
@ApiResponse(code = 400, message = "error"), @ApiResponse(code = 500, message = "Internal server error") })
@RequestMapping(value = "/{id}/{id2}", method = RequestMethod.POST, consumes = { MediaType.APPLICATION_JSON_VALUE }, produces = { MediaType.APPLICATION_JSON_VALUE })
public ResponseEntity<String> doThing(@PathVariable(value = "id") String id, @PathVariable(value = "id2") String id2, @RequestBody
        MyObject myObjectRequest) {

    return null;

}

Working XML Request

<myObjectRequest>
  <number>five</number>
  <music>rock</music>
  <color>RED</color>
</myObjectRequest>

Failing Json

{
    "myObjectRequest": {
    "number": "five",
    "music": "rock",
    "color": "RED"
  }
}

Upvotes: 0

Views: 391

Answers (1)

Ivan
Ivan

Reputation: 8758

Your JSON should look like this I think

{
  "number": "five",
  "music": "rock",
  "color": "RED"
}

Upvotes: 1

Related Questions