springboot项目中获取前端JSON串形式

今天项目中遇到前端将多个实体类封装成实体类数组后转为json字符串,后端接收时,用String类型接收。
若不加@RequestBody注解则接收不到数据,
接收到数据后,可以看一下数据格式,一般是K,V的形式,在json串转对象时,需要先通过K,获取V值,再进行对象转换。

在这里插入图片描述

 public NewResultMsg updateUserAndUserAccount(@RequestBody String visitIssue){
    try {
    logger.info("+++++"+visitIssues);
        JSONObject jsonObject = (JSONObject) JSONObject.parse(visitIssues);
        JSONArray jsonArray = jsonObject.getJSONArray("visitIssues");
        logger.info("+++++"+jsonArray.toJSONString());
        String issueStr = JSONArray.toJSONString(jsonArray);
        List<VisitIssueVO> visitIssueVOS = JSON.parseArray(issueStr,VisitIssueVO.class);
        logger.info("+++++解析json字符串完成!!!");
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用Java的Base64编码器将验证码换为Base64编码的字符串,然后将其作为JSON响应发送到前端。在前端,可以使用JavaScript的atob()函数将Base64编码的字符串解码,并将其显示在图像元素。 以下是一个示例代码片段,用于将Java生成的验证码编码为Base64字符串并将其发送到前端: ```java @RestController public class CaptchaController { @Autowired private CaptchaService captchaService; @PostMapping("/captcha") public ResponseEntity<Map<String, String>> generateCaptcha() { BufferedImage image = captchaService.generateCaptcha(); ByteArrayOutputStream baos = new ByteArrayOutputStream(); try { ImageIO.write(image, "png", baos); } catch (IOException e) { e.printStackTrace(); } byte[] bytes = baos.toByteArray(); String base64 = Base64.getEncoder().encodeToString(bytes); Map<String, String> response = new HashMap<>(); response.put("captcha", base64); return ResponseEntity.ok(response); } } ``` 在前端,可以使用以下代码将Base64编码的字符串解码并将其显示在图像元素: ```javascript fetch('/captcha', { method: 'POST' }) .then(response => response.json()) .then(data => { const captchaImg = document.createElement('img'); captchaImg.src = 'data:image/png;base64,' + data.captcha; document.body.appendChild(captchaImg); }); ``` 在这个示例,我们从后端获取Base64编码的验证码,并将其设置为图像元素的源。由于图像元素需要一个URL作为源,我们需要使用"data" URL格式,并在Base64编码的字符串之前添加"data:image/png;base64,"前缀。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值