私の休息中のサービスでは、multipart/form-dataを使用してJSONオブジェクトでファイルをアップロードしようとしています。バックエンドでresteasy MultipartFormDataInputを使用してリクエストとアクセスファイルとJSONオブジェクトを処理していますjacksonを使用してString/JSON MultipartFormDataInputをオブジェクトに自動的にマッピングするサポートがありますか?
私のファイルと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);
私はjacksonオブジェクトマッパーを使用してボディストリングをJSONオブジェクトに変換しています。ここでの問題は、このマッピングが通常のBeanの検証を無視し、手動で実装する必要があることです。
自動的にString/JSONの部分をjacksonを使用してオブジェクトにマッピングするサポートはありますか?はいの場合は、MultipartFormDataInputオブジェクトからこのオブジェクトを取得する手助けができますか?