@ResponseBody返回string自动增加“”

本文介绍了一个关于Spring MVC框架中使用@ResponseBody注解返回字符串时遇到的问题及解决方案。当返回简单的字符串如success时,实际返回值被自动转为JSON格式,即success,这不符合某些接口的需求。文章提供了通过HttpServletResponse对象直接写入的方式避免该问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

@ResponseBody的返回


场景:调用渠道打款。收到回调后,返回success为成功。
问题:直接使用@ResponseBody在controller上返回String类型,但是当得到数据的时候出现坑点。返回值为:“success”。[是带双引号,导致验收失败]。

// 代码如下

    @ResponseBody
    @RequestMapping(value = "/index",method = RequestMethod.POST)
    public String getData(){
        return "success";
    }
// postmen返回
"success"

结论:当@ResponseBody返回时,会自动给返回值json化。当为对象时返回 {“name” : “val”, “name2” : “val2”} 。但是当返回值为string类型时会被解析成为“xxx”。

解决方案:使用HttpServletResponse返回输出到流中。

public ModelAndView callBack(HttpServletResponse response){
        String succ = "success";
        PrintWriter pw =null;
        try {
            pw = response.getWriter();
            pw.write(succ);
            pw.flush();
        } catch (IOException e) {
            e.printStackTrace();
        }
        finally {
            pw.close();
        }
        return  null;
    }
// postmen返回
success
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值