У меня Spring Boot 2.1.3 + тимилиф веб-приложение.Я пытаюсь передать массив JSON в контроллер с помощью ajax POST.Массив JSON создается следующим образом:
var obj = [];
$('#fornitori-table').find('tr').each(function () {
var row = $(this);
if (row.find('input[type="checkbox"]').is(':checked')) {
var cellObj = row.find('td:eq(1)');
if (cellObj.length > 0) obj.push({ idFurn : cellObj[0].innerText });
}
});
Теперь, если я передам массив obj через GET следующим образом:
location.href = "/sendRdo/"+encodeURI(JSON.stringify(obj));
в контроллер:
@GetMapping("/sendRdo/{idS}")
public String sendRdo(@PathVariable JSONArray obj, Model model) {
....
}
все работает хорошо .. если я пытаюсь передать его с помощью сообщения ajax:
$.ajax({
type: "POST",
url: "/sendRdo",
dataType: "json",
data: JSON.stringify(obj),
contentType: "application/json",
success: function(data) {
}
});
Я всегда получаю com.fasterxml.jackson.databind.exc.MismatchedInputException ошибкаесли я не помещу Object в качестве полученного типа в контроллере:
public String sendRdo(@RequestBody Object obj, Model model) {
}
Если я отлаживаю и указываю переменную obj, я вижу LinkedHashMap .. но если я поставлю Map <> вместо Object, я получу ошибку выше.
Я использую:
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20180813</version>
</dependency>
для JSON
Можете ли вы помочь мне?Спасибо