有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

json无法在java中正确传递参数,只有字符串可以正常工作

@RequestMapping(value = "/admin/pp", method = RequestMethod.GET, headers = "Accept=application/json")
@ResponseBody
public Description getDescription(@RequestBody UserStats stats){
    return new Description(stats.getFirstName() + " " + stats.getLastName() + " hates wacky wabbits");
}

public class UserStats{
    private String firstName;
    private String lastName;
    public String getFirstName() {
        return firstName;
    }
    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }
    public String getLastName() {
        return lastName;
    }
    public void setLastName(String lastName) {
        this.lastName = lastName;
    }
    
}
public class Description{
    private String description;

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }
   
    public Description(String desc)
    {
        this.description = desc;
    }
}

我用postman传递Json中的值

{
    "firstName":"a",
    "lastName":"b"
}

结果是HTTP状态400–错误请求 所有代码都运行良好,我确信问题出在@RequestBody或我如何传递Json值 如果我尝试使用一个简单的字符串,而不是UserStats类,它工作得很好,尝试使用Long并在json中传递一个数字,它就不再工作了。这门课也是一样


我尝试使用POST方法,而不是获得相同的结果


共 (1) 个答案

  1. # 1 楼答案

    找到解决问题的长期价值的解决方案 https://stackoverflow.com/a/52798549/11500163

    也许您正试图从Postman客户端发送一个包含JSON文本的请求,或者类似的请求:

    {
     "id_search":2
    }
    

    Jackson无法反序列化它,因为它不是整数(看起来是,但不是)。来自java的整数对象。lang Integer稍微复杂一点

    对于你的邮递员工作请求,只需写(不带花括号{}):

    2