【问题标题】:Spring return string as json without creating a pojo to serializeSpring将字符串作为json返回,而不创建pojo进行序列化
【发布时间】:2020-09-16 17:05:12
【问题描述】:

我正在使用 Spring 代理 Web 请求。来自终端服务器的响应是 json,我想将 json 按原样传递给客户端,而不创建用于序列化/反序列化的 pojo。这可能吗?

@RequestMapping(value = "/sample")
@ResponseBody
Object proxyTesting(){
    String result;
    //after proxy result={"success":true , "data":5}
    return result;
}

在客户端,我希望它保持原样。即{"success":true , "data":5}

实际上,结果字符串是嵌套的,我不想为它们创建临时 pojo。

【问题讨论】:

    标签: java spring spring-boot


    【解决方案1】:

    是的,这是可能的。

    问题“Spring MVC - 如何在 Rest Controller 中以 JSON 形式返回简单字符串 " 和你的类似:https://stackoverflow.com/a/33352362/12485815

    这里提供了一个答案:

      @RequestMapping(value="/user/addUser", method=RequestMethod.POST)
      @ResponseBody
      public String addUser(@ModelAttribute("user") User user) {
         
        if (user != null) {
          logger.info("Inside addIssuer, adding: " + user.toString());
        } else {
          logger.info("Inside addIssuer...");
        }
        users.put(user.getUsername(), user);
        return "{\"success\":1}";
      }
    

    【讨论】:

    • 你可以使用Map<String, String>
    【解决方案2】:

    不好的做法,但你想要这样的东西

    @RequestMapping(value = "/sample", produces = "application/json") 
    @ResponseBody 
    String proxyTesting(){
    String result;
    return "{ \"success\":\"true\", \"data\":\""+result+"\"}"; 
    }
    

    【讨论】:

      猜你喜欢
      • 2014-06-27
      • 2019-03-10
      • 1970-01-01
      • 2022-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-09
      相关资源
      最近更新 更多