Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using generic JSON Object as Request Body

I'm having a controller which receives JSON Object as input. But the problem is that, the content of JSON will vary for different requests, so Im not able to map the RequestBody to a POJO.
Is there a way I can specify the input parameter as generic JSONObject without having to specify a specific POJO.
I tried @RequestBody JSONObject inputJson. But this is throwing bad request from the client side.
I'm using spring 3.2.13 and Angular as Front End.
Any help is much appreciated. Thanks.

like image 264
Abdu Manas C A Avatar asked Jul 03 '18 09:07

Abdu Manas C A


1 Answers

It will depend a little on what you're using for JSON conversion. But you probably need to accept the input as a String and generate a JSONObject.

@RequestBody String inputJson
JSONObject jsonObj = new JSONObject(inputJson);

Or process the input as a map and just use that directly. Most versions of Jackson will perform this conversion for you:

@RequestBody Map<String, Object> inputData)
 JSONObject jsonObj = new JSONObject(inputData);

In the map case you may not need the JSONObject but you can generate it if you want.

like image 168
Joe W Avatar answered Nov 06 '22 01:11

Joe W