![cover](https://img-blog.csdnimg.cn/29ca21abc8104035b425d852cc9aa2c5.jpeg)
apifox或者网页显示不了json数据,apifox显示返回数据结构与接口定义不一致,返回的数据格式不是 JSON
使用springboot或者ssm框架开发时遇到获取不到json数据的问题
·
今天在做项目的时候发现一直获取不到json数据,之前的项目是可以的,但是这个就是不行,查了很多资料也没有解决问题,最后一步一步排查发现是返回的对象必须要有set,get方法才行。。
apifox显示问题:
![](https://i-blog.csdnimg.cn/blog_migrate/9b7c33242abf52d6be69d93136264322.jpeg)
写的test测试:
![](https://i-blog.csdnimg.cn/blog_migrate/2c64d7756bd80c8b9e2ce25855851abe.jpeg)
结果一直不行,加上set和get方法后:
![](https://i-blog.csdnimg.cn/blog_migrate/cae31e60b30a328058d0a4ddc941c425.jpeg)
但是问题解决了,我想知道为什么我都给你封装好了对象了你还要调用set,get方法才能转成json对象?又一步一步的测试。。
先把Result中的set方法去掉试试:
![](https://i-blog.csdnimg.cn/blog_migrate/3f40d4cd0da36cf3b8edb4dde08aefae.jpeg)
看看能不能获得:
![](https://i-blog.csdnimg.cn/blog_migrate/fa4d7dda3c6d713cbc0c4eb74a354735.jpeg)
发现有没有set结果不影响。。
再把get去掉看看:
![](https://i-blog.csdnimg.cn/blog_migrate/9fa0b3f15d27af99de571eecb6df8d32.jpeg)
发现出了问题,data没了:
![](https://i-blog.csdnimg.cn/blog_migrate/293c665f5c4038d2a9ffd6a85878b8b8.jpeg)
那把get去掉,但是属性改为public呢?
![](https://i-blog.csdnimg.cn/blog_migrate/8cc5990945af790ad71a28fd3218d36c.jpeg)
再发送请求看看:
![](https://i-blog.csdnimg.cn/blog_migrate/ac5317d4908987c7a3b236d9e7650050.jpeg)
data又有了。。
至此了解到,原来springmvc帮助我们把对象封装成json需要获取对象的属性才行,就算我们已经把对象的属性都注入了,它获取不到也不行,而具体实现的原理还是由各位读者区自行研究,我继续滚回去做项目了,花了我4个小时排查这个问题。。。
更多推荐
所有评论(0)