从压缩文件的一部分JSON文件动态转换为DTO的数据(请求参数)

syqv5f0l  于 2023-07-01  发布在  其他
关注(0)|答案(1)|浏览(130)

我正试图上传一个zip文件,并从zip文件中的json文件加载json数据到相应的DTO。
上传部分(以下注解参考spring Boot 注解):

@ApiOperation(value = "Imports one or more files")
@PostMapping("/fileExchange/import")
public ResponseEntity Import(@RequestParam MultipartFile file)

请建议可能的方法来动态加载json文件数据到相应的DTO,而无需手动阅读jsonFile,因为jsonFile的长度和数据可能会有所不同。

xxls0lw8

xxls0lw81#

最初,我尝试使用ObjectMapper的writeValue和convertValue将JSONObjectMap到POJO。尽管Map在运行时成功,没有任何意外,但POJO仍然为空。(启用了JSON属性来标识JSONObjects)
我尝试使用GSON和JSONObjects进行Map。我可以用下面的方法成功地Map:

Map<String, Object> userData =
          mapper.readValue(fileData, new TypeReference<Map<String, Object>>() {});
      JSONObject json = new JSONObject((Map<String, ?>) userData.get("fundusFile"));

      FundusFile fundusFile = new Gson().fromJson(json.toString(), FundusFile.class);

相关问题