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.
Using generic JSON Object as Request Body
Asked Answered
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.
While taking Map<String, Object> if the value of one property is very big in decimal, then it trims and convert it to double. How to solve that ? –
Scrummage
You can use JsonNode
@RequestBody JsonNode requestBody
© 2022 - 2024 — McMap. All rights reserved.