【问题标题】:How to return string to json format如何将字符串返回为json格式
【发布时间】:2020-03-30 01:49:55
【问题描述】:
@CrossOrigin(origins = "*", allowedHeaders = "*")
@RequestMapping(value = Constants.REQ_MAP_LOGIN, method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
public String vendorloginMethodPost(@RequestBody VendorLogin vendoridlogin) {

    System.out.println(vendoridlogin);
    String message = Constants.EMPTY_STRING;
    String id = dao.getLoginDetails(vendoridlogin);


    if (id == null) {
        message = "login fail";
    } else {
        message = " login Successfully";
    }

    return message;
}

如何将响应字符串返回为 json 格式 如何转换? 在上面,Spring 会在响应正文中添加“Login sussess or fail”。 如何将字符串作为 JSON 响应返回?我不明白我可以添加引号。 请提供任何示例来帮助解释这个概念。

【问题讨论】:

    标签: java mysql spring spring-boot spring-mvc


    【解决方案1】:

    您可以将其设为 RestController,并返回如下所示的对象。

    public class Message(){
        private string message;
    
        public Message(String message){
            this.message = message;
        }
    
        public String getMessage(){
            return this.message;
        }
    
        public void setMessage(String message){
            this.message = message;
        }
    }
    

    你可以说

    return new Message("login success");
    

    return new Message("login failed");
    

    它会很干净,您不必自己处理字符串和处理转义字符。

    【讨论】:

      【解决方案2】:

      或者你可以这样做

      try {
          if (id == null) {
             message = new JSONObject("login fail").toString();
          } else {
             message = new JSONObject(" login Successfully").toString();
          }
      } catch (JSONException e) {
              e.printStackTrace();
          }
      

      【讨论】:

        【解决方案3】:

        您可以使用Map 作为返回类型。

        @RequestMapping(value = Constants.REQ_MAP_LOGIN, method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
        public Map<String, String> vendorloginMethodPost(@RequestBody VendorLogin vendoridlogin) {
        
            // [...]
        
            if (id == null) {
                return Map.of("message", "login fail");
            } else {
                return Map.of("message", "login success");
            }
        }
        

        【讨论】:

          【解决方案4】:
          @ResponseBody
          public String vendorloginMethodPost(@RequestBody VendorLogin vendoridlogin) {
              ......
          
              Map<String,Object> map=new HashMap<>();
          if (id == null) {
               map.put("message","login fail");
               map.put("returnCode",0);
          } else {
              map.put("message","login Successfully");
              map.put("returnCode",1);
          }
              return map;
          }
          

          我觉得这样更好

          【讨论】:

            【解决方案5】:

            你可以试试这个

                if (id == null) {
                    message = "{\"message\":\"login fail\"}";
            
                } else {
                    message = "{\"message\":\"login Successfully\"}";
                }
            

            或者如果你想以纯文本形式回复,你可以使用:-

            produces=MediaType.TEXT_PLAIN_VALUE
            

            希望对您有所帮助。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2019-04-01
              相关资源
              最近更新 更多