jackson 如何将文件转换为DTO播放框架java

9nvpjoqh  于 7个月前  发布在  Java
关注(0)|答案(1)|浏览(98)

我有一个POST请求,其主体包含以下json:

{
   "fileType": "excel",
   "fileBody": "dasdasomdaojawd"
}

我的项目中有一个这样的dto:

Public class import{
  String fileType;
  String fileBody;
}

我应该为'fileBody'指定什么类型,因为它是文件字节,这样play框架就可以正确地将这个字节流转换到我的dto中。
在spring-boot中,我会将其标记为MultipartFile,但play框架没有这个选项。
从请求中提取文件的标准方法如下:

Http.MultipartFormData body = req.body().asMultipartFormData();
Http.MultipartFormData.FilePart fileItem = body.getFile("fileBody");

但是我能不能至少以某种形式将文件直接转换成dto?也许我可以先把它保存成String形式,然后再把它转换成Http.MultipartFormData.FilePart?请给予点提示。

dgiusagp

dgiusagp1#

您可以首先从请求中获取JsonNode

Http.Request req = request();

// get the body  
Http.RequestBody reqBody = req.body()

// Convert it into JsonNode

JsonNode node = reqBody.asJson();

// simply parse it using Json.fromJson(jsonNode,class)
import imp = Json.fromJson(node,import.class)

它使用ObjectMapper对象从节点读取值,并通过将其与提供的类匹配来解析它。有关更多信息,请参阅:https://www.baeldung.com/jackson-json-node-tree-model

相关问题