com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException异常:其中一种解决方式

   

知道问题后,调整思路去搜索答案,发现我的问题早有答案,以下内容大家可通过:SpringBoot + 属性命名首字母大写 关键词获得更为专业的解答。

------------------------------------------------------------

     前几天遇上了这个错(使用jsckson包解析json串为对象报错),花了一点时间才解决,在网上找到的解决方式都不适用(也许看得太少),所以解决之后,顺便发表一下,给各位提供一种思路:

一、前情提要

①存在一个student类:

com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException异常:其中一种解决方式_第1张图片

②存在一个httpclient 类,通过访问某服务器,获取响应,并想要将http响应报文中的json串解析为实体对象Student

二、调试结果

报错:

com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "StuName" (class com.test.Student), not marked as ignorable (3 known properties: "stu_Name", "stu_sex", "stu_age",])
 at [Source: (String)"{ "StuName": "tin", "stu_sex": "girl", "stu_age": "20", }....

三、分析与解决

       错误信息告诉我们的是:返回的json字符串中的StuName键值对无法在实体类Student中找到对应属性StuName。

       仔细观察发现,StuName的命名方式最不一样(不是我要这样命名!!是文档这样要求的!!!),只能在类Student中识别到一个这样的属性stuName,匹配不上我们想要的StuName。所以解决方式很简单,就是要将类中的StuName强制识别为StuName,使用这样的标签注释Student类可达到目的:

      

四、其他

      这个问题其实还没有仔细研究完,待日后填坑吧。看起来那个简单的一个道理,其实还是花了我很多时间去解决(求助兄弟才解决的),首当其冲就是看不懂这个异常以及异常信息,阅读障碍啊,看不懂的情况下就直接去搜网上的解决方式,别人的解决方式根本不适用呀,生的病其实根本就不一样啦。所以解决问题第一步,请认清问题是什么。

 

 

你可能感兴趣的:(Java,Jackson,json,springboot)