@RequestMapping(value = "/createXXX", method = RequestMethod.POST ,consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public @ResponseBody ResponseEntity<String> createXXX(@Context HttpServletRequest request, HttpSession httpSession,
@Valid @RequestParam("json") String jsonString,@Valid @RequestPart("file") MultipartFile[] files) {
ObjectMapper mapper = new ObjectMapper();
AModel aModel = null;
try {
aModel = mapper.readValue(jsonString, AModel.class);
} catch (IOException e) {
}
Кто-то еще использует API REST, опубликованный нами, и тип контента multipart / form-data, потребители API отправят строку JSON и некоторые вложения файлов, строка JSON будет выглядеть как
{
"mail":"xxx.com",
"mailSubject":"Hi how are you",
"mailBody":"here we can have anything rich text, html etc which we are generally writing while sending the mails"
}
У меня проблема с использованием этого mailBody, потому что это редко будет нормальной строкой, поэтому анализатор JSON выдает ошибку.
error: {
"errorCode": 400,
"status": "BAD_REQUEST",
"message": "ERR-0001: Required parameters are blank or invalid.",
"timestamp": "29-08-2018 07:06:17",
"Errors": [
{
"field": "",
"rejectedValue": "json",
"message": "Illegal unquoted character ((CTRL-CHAR, code 13)): has to be escaped using backslash to be included in string value\n at [Source: java.io.StringReader@74be551a; line: I, column: 134]"
}
]
}
поэтому я хочу изменить структуру API, чтобы мы могли использовать тело почты внутри строки json или вне строки json.