如何将文件反序列化到DTO播放框架java

问题描述 投票:0回答:1

我有一个 POST 请求,其正文包含以下 json:

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

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

Public class import{
  String fileType;
  String fileBody;
}

我应该为“fileBody”指定什么类型,因为它是文件字节,以便播放框架能够正确地将这个字节流反序列化到我的 dto 中。

在 spring-boot 中我会将其标记为 MultipartFile,但是 play 框架没有该选项。

从请求中提取文件的标准方法如下:

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

但是我可以至少以某种形式将文件直接反序列化到 dto 中吗? 也许我可以先将其粘贴为字符串形式,然后将其转换为 Http.MultipartFormData.FilePart? 请给我提示。

java playframework jackson
1个回答
0
投票

可以先从请求中获取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

© www.soinside.com 2019 - 2024. All rights reserved.