spring boot反序列化json时如何忽略不需要的属性
遇到一个奇怪的问题纠结了好几天,最终发现是反序列化json的时候需要忽略部分参数。
前端put更新请求的时候,出现错误,chrome调试错误代码如下:
{"timestamp":1532181308556,"status":400,"error":"Bad Request","exception":"org.springframework.validation.BindException","errors":[{"codes":["typeMismatch.mold.customer","typeMismatch.customer","typeMismatch.org.sipes.entity.Customer","typeMismatch"],"arguments":[{"codes":["mold.customer","customer"],"arguments":null,"defaultMessage":"customer","code":"customer"}],"defaultMessage":"Failed to convert property value of type 'java.lang.String' to required type 'org.sipes.entity.Customer' for property 'customer'; nested exception is java.lang.IllegalStateException: Cannot convert value of type 'java.lang.String' to required type 'org.sipes.entity.Customer' for property 'customer': no matching editors or conversion strategy found","objectName":"mold","field":"customer","rejectedValue":"[object Object]","bindingFailure":true,"code":"typeMismatch"}],"message":"Validation failed for object='mold'. Error count: 1","path":"/mold/mold"}
这几天一直纠结于这个问题,今晚突然醒悟应该是在反序列化的时候,忽略掉customer对象。
请教大神,应该如何操作?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
当一个对象不够的时候,就再创建一个对象。
假设你的类是这个样子:
那你反序列化的时候就不应该再用这个类,而应该弄一个新类:
然后你代码里自己决定怎么使用FooUpdateCmd。
在对象mold的定义中,getCustomer方法前面加上JsonIgnore,使其在解析json的时候忽略掉,这个错误就可以解决了。