springboot中json参数映射

json映射不到实体上

开发中postman发的json映射不到实体上。

问题分析

原来是json等请求,需要加@RequestBody注解。

如果content-typeapplication/x-www-form-urlcoded (也就是表单形式,或者是地址传参),那么参数会自动注入,什么都不用加。
如果不是的话,如 application/json 或者是 application/xml 等,需要加@RequestBody注解。

解决方案

参数前加上@RequestBody注解即可,代码:

@ResponseBody
@RequestMapping("/add")
public Set<String> add(@RequestBody KVEntity kvEntity){
}

看样子还要继续努力啊。

json映射到String查不到数据

用惯json了,有的时候只需传一个string,也用json,发现查询结果不对。
例如报文如下:

{
	"username":"zhangsan"
}

问题分析

后台用String username接收的话,会整个接收。
如下:

// 想要的是这样
username="zhangsan"
// 实际会这样
username="\{\"username\":\"zhangsan\"\}";

解决方案

1、不用json格式,用地址传参,或formdata的格式传递。
2、使用包含username的User对象接收参数。

自动映射入参可以多吗,可以少吗

入参多,对应实体不存在的情况。
这种是可以的。

入参少,这种情况很常见,报文中只填所属的参数。
这种也是可以的。除非有限制入参的某个字段为必填项,那么才会报错。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值