首页 > 解决方案 > 如何使用邮递员休息客户端将自定义 dto 作为休息 api 输入传递

问题描述

这是我的代码,我正在尝试将用户详细信息作为 json 输入传递,但我无法在我的 rest api 方法中接收数据。我将所有值都设为空,

这是我的 json 请求

{
    "userId" : "12345",
    "username" : "arun.ammasai",
    "createdBy" : "-2",
    "updatedBy" : "-2",
    "statusCd" : "New",
    "createdDate" : "2019-03-03",
    "updatedDate" : "2019-03-03"
}

==================================================== ===================

@RequestMapping(value = "/registerUser", method = RequestMethod.POST, consumes = { "application/JSON", "application/XML" })
private String registerUser(User user) {
    System.out.println(user.toString());
    return "User Created";
}

==================================================== ===================

这是 Postman Client 中的响应

意外的'U'

标签: javajsonrestapispring-mvc

解决方案


使用 @RequestBody 注释更新您的方法签名。它会自动将您的 json 反序列化为 java 实体。请注意,json 中的名称应与 User 对象中的参数相同,并且 User 对象应具有 getter 和 setter。所以你的方法应该看起来像

    @RequestMapping(value = "/registerUser", method = RequestMethod.POST, consumes = { "application/JSON", "application/XML" })
        private String registerUser(@RequestBody User user) {
            System.out.println(user.toString()); //What is the reason of doing toString of java Object? 
            //better to do System.out.println(user.getUsername())
            return "User Created";
    }

推荐阅读