Если вы хотите, чтобы ваш JSON был десериализован в какой-либо класс, вам нужно определить такой метод (и не забудьте добавить jsonConverter, как в предыдущем ответе):
.... method(@RequestBody MyClass data){ ... }
Но , если вы хотите, чтобы ваш метод принимал JSON как String, чем это:
.... method(@RequestBody String json){ ... }
Итак, в основном, если вы публикуете JSON, это означает, что JSON не является параметром, это тело запроса. И в конечном итоге вам нужно использовать аннотацию @RequestBody вместо @RequestParam.
Вы можете найти прекрасное видеоуролюние Spring Mvc и JSON здесь: sites.google.com/site/upida4j/example