当前位置: 首页 > article >正文

参数传了报错没传参数识别不到参数传丢

【记一次参数传值了但报错未传值的问题解决历程】
问题描述:同一个接口,用测试类调可以成功,用postman调用一直报错少参数,后又尝试了用idea自带的http调用,同样报错参数未传值。
在这里插入图片描述
如图,传值了报错未传值。

Controller层及DTO写法如下图:
在这里插入图片描述
在这里插入图片描述

解决历程

1.用postman调用一直报错参数未传值,但用测试类调可以成功,怀疑是postman的问题。后又尝试了用idea自带的http调用,结果同样,故排除postman的问题。

接口入口处打了断点,但请求参数校验处就已经失败了,没进入到接口内部。

2.怀疑是因为入参通过注解@Valid + @NotBlank 做了非空校验,注解校验错误,传值校验成未传值了。故去掉@Valid再次请求接口

在这里插入图片描述
如图,很明显,打印的参数少了!所以怀疑是参数传丢了!怎么传丢呢,必然是http传输的过程中丢的,怀疑是参数名没解析。

3.更换参数名如下图,再试,成功。

在这里插入图片描述
特殊参数名未解析到,不愿更换参数名可通过加注解@JSONField或@JsonProperty强制映射。

@JSONField注解是阿里巴巴的fastjson框架中的注解,用于指定JSON字符串中的属性名和Java对象中的属性名之间的映射关系

@JsonProperty注解是Jackson框架中的注解,用法类似于@JSONField,也是指定JSON字符串中的属性名和Java对象中的属性名之间的映射关系

4.@JSONField注解

在这里插入图片描述
在这里插入图片描述

5.@JsonProperty注解

在这里插入图片描述
在这里插入图片描述

6.@JSONField和@JsonProperty注解的其他用法可参考

https://www.jb51.net/program/3223658h7.htm


http://www.kler.cn/news/303090.html

相关文章:

  • ‌汽车的舒适进入功能是什么意思?
  • 【区块链 + 人才服务】Blockchain Workshop- 区块链编程实践平台 | FISCO BCOS应用案例
  • Maven从入门到精通(二)
  • 设计模式-行为型模式-备忘录模式
  • 关于.net Framework向.net core的移植
  • HarmonyOS SDK开放能力简介
  • 基于学习功能聚合的英语口语学习APP
  • flink实战--如何基于java-agent技术上线收集任务流量功能
  • 向量——通俗地解释
  • 网络编程(UDP)
  • 详解贪心算法
  • STM32 如何生成随机数
  • CentOS 7下CX5-RDMA网络测试
  • 6年前倒闭的机器人独角兽,再次杀入AGV市场
  • Vue3+TS项目封装一个公共的el-table组件二次封装
  • ADB 之 logcat 极简小抄(过滤日志、保存日志到文件)
  • C++复习day11
  • 基于人工智能的自动驾驶系统项目教学指南
  • 【C++】STL容器-string的遍历
  • Android10源码刷入Pixel2以及整合GMS
  • 【python】python中非对称加密算法RSA实现原理与应用实战
  • Linux的历史,版本,Linux的环境安装、简单学习4个基本的Linux指令、创建普通用户等的介绍
  • android kotlin 基础复习 继承 inherit
  • 用AI的智慧,传递感恩之心——GPT-4o助力教师节祝福
  • ClickHouse 的底层架构和原理
  • 【最新华为OD机试E卷-支持在线评测】通过软盘拷贝文件(200分)多语言题解-(Python/C/JavaScript/Java/Cpp)
  • 密码测评三级相关项理解
  • 7 递归——206. 反转链表 ★
  • 【Canvas与密铺】正六边形、正方形和正三角形的密铺
  • mysql Field ‘ssl_cipher‘ doesn‘t have a default value的解决