【发布时间】:2017-02-21 22:01:20
【问题描述】:
在我的休息服务中,我尝试使用 multipart/form-data 上传带有 JSON 对象的文件。我在后端使用 resteasy MultipartFormDataInput 来处理请求和访问文件和 JSON 对象
我可以如下处理我的文件和 JSON 对象;
@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
public void uploadFile(MultipartFormDataInput input) throws IOException {
Map<String, List<InputPart>> uploadForm = input.getFormDataMap();
List<InputPart> fileInputParts = uploadForm.get("uploadedFile");
List<InputPart> jsonInputParts = uploadForm.get("content");
//convert the uploaded file to inputstream
InputStream inputStream = fileInputParts.get(0).getBody(InputStream.class, null);
byte[] bytes = IOUtils.toByteArray(inputStream);
//Convert the uploaded JSON object
GenericRestBean bean = new ObjectMapper().readValue(jsonInputParts .get(0).getBodyAsString(), GenericRestBean.class);
我正在使用杰克逊对象映射器将正文字符串转换为 JSON 对象。这里的问题是这个映射将忽略正常的 bean 验证,我需要手动重新实现它。
resteasy 是否支持使用 jackson 自动将 String/JSON 部分映射到对象?如果是,谁能帮我从 MultipartFormDataInput 对象中获取此对象?
【问题讨论】:
标签: java json rest jackson resteasy