Java 如何将字符串返回为json格式

Java 如何将字符串返回为json格式,java,mysql,spring,spring-boot,spring-mvc,Java,Mysql,Spring,Spring Boot,Spring Mvc,如何将响应字符串返回为json格式 如何转换? 在上面的例子中,Spring将在响应体中添加“登录成功或失败”。 如何将字符串作为JSON响应返回?我不明白我可以加引号。 请提供任何有助于解释此概念的示例。您可以尝试此方法 @CrossOrigin(origins = "*", allowedHeaders = "*") @RequestMapping(value = Constants.REQ_MAP_LOGIN, method = RequestMethod.POST, produces =

如何将响应字符串返回为json格式 如何转换? 在上面的例子中,Spring将在响应体中添加“登录成功或失败”。 如何将字符串作为JSON响应返回?我不明白我可以加引号。 请提供任何有助于解释此概念的示例。

您可以尝试此方法

@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;
}
或者,如果您想要纯文本响应,可以使用:-

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

    } else {
        message = "{\"message\":\"login Successfully\"}";
    }
希望这对您有所帮助。

@ResponseBody
produces=MediaType.TEXT_PLAIN_VALUE
公共字符串vendorloginMethodPost(@RequestBody VendorLogin VendorLogin){ ...... Map Map=newhashmap(); if(id==null){ map.put(“消息”,“登录失败”); 地图放置(“返回代码”,0); }否则{ map.put(“消息”,“登录成功”); 地图放置(“返回代码”,1); } 返回图; }

我认为这样更好

您可以使用
映射
作为返回类型

@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;
}
@RequestMapping(value=Constants.REQ\u MAP\u LOGIN,method=RequestMethod.POST,products=MediaType.APPLICATION\u JSON\u value)
公共映射vendorloginMethodPost(@RequestBody VendorLogin VendorLogin){
// [...]
if(id==null){
返回映射(“消息”、“登录失败”);
}否则{
返回映射(“消息”、“登录成功”);
}
}

或者您可以这样做

@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");
    }
}
您可以将其设置为RestController,并返回如下所示的对象

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

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");