资讯专栏INFORMATION COLUMN

RequestBody 报错解决方法

raledong / 672人阅读

摘要:注本文使用作为序列化和反序列化库如果请求为多层级或者数据量大比较复杂的时候可以考虑采用的方式也就是设置请求方法为中为中是一个字符串在中接收的方式就是采用注解比如但有时这个会抛出类似这样的异常产生这个异常的原因是请求的中包含了这个类没定义的

(注:本文使用Jackson2作为JSON序列化和反序列化库)
如果http请求为多层级或者数据量大, 比较复杂的时候, 可以考虑采用post json的方式.
也就是设置请求方法为POST, Header中Content-Type为application/json, request body中是一个json字符串.

在SpringMVC中接收的方式就是采用注解@RequestBody, 比如:

@RequestMapping(value = "/api")
@ResponseBody
public Object api(@RequestBody SampleForm form) {
    return new Object();
}

但有时这个api会抛出类似 The request sent by the client was syntactically incorrect 这样的异常.

产生这个异常的原因是请求的json中包含了SampleForm这个类没定义的字段.

解决方法就是给SampleForm这个类定义上加上注解 @JsonIgnoreProperties(ignoreUnknown = true), 即可忽略未定义字段的接收.

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/69797.html

相关文章

  • 前端项目请求层封装过程

    摘要:我们看下把重复代码封装成一个的示例代码这里假设我们项目请求头固定这两个判断返回没有错误使调用可读性更好以上封装了一个,调用的时候如下对结果进行处理通过传递回调函数的方式,可读性性不是很好当然这是一个仁者见仁的问题。 调用 ajax 取请求后端数据是项目中最基础的功能。但是如果每次直接调用底层的浏览器 api 去发请求则非常麻烦。现在来分析一下怎么封装这一层,看看有哪些基础问题需要考虑。...

    bbbbbb 评论0 收藏0
  • @Validated和@Valid的区别?校验级联属性(内部类)

    摘要:毕竟永远相信本文能给你带来意想不到的收获使用示例关于数据校验这一块在中的使用案例,我相信但凡有点经验的程序员应该没有不会使用的,并且还不乏熟练的选手。 每篇一句 NBA里有两大笑话:一是科比没天赋,二是詹姆斯没技术 相关阅读 【小家Java】深入了解数据校验:Java Bean Validation 2.0(JSR303、JSR349、JSR380)Hibernate-Validati...

    Winer 评论0 收藏0
  • 【问题解决解决Angular客户端请求Rest服务跨域问题

    摘要:问题描述通过是请求的服务,控制台报错如下,但是为。客户端和服务端相同,但是端口不同,存在跨域问题。注解即是给响应头增加了这两个参数解决跨域问题。报错如下查看响应码,错误原因进一步查看请求头信息,为。发送请求,请求成功。 1.问题描述:通过Origin是http://localhost:4200请求http://localhost:8081的服务,控制台报错如下,但是Response为2...

    megatron 评论0 收藏0
  • okhttp传递数组参数

    摘要:采用向后台传递字符串数组参数格式如下是个字符串数组最初定义了一个然后转成字符串但是这样得到的结果是变成了字符串比较以上两种格式发现格式不对传给后台时总是报参数错误的异常解决办法定义一个对象继承自通过定义请求接口打开输入输入请求参数选择选择 采用okhttp+rxjava+retrofit向后台传递字符串数组参数,格式如下 { list: [xxx,yyy]//value是个字符...

    awokezhou 评论0 收藏0

发表评论

0条评论

raledong

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<