我有一个 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? 请给我提示。
可以先从请求中获取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