jackson首字符小写属性Json序列

白癜风免费活动 http://m.39.net/pf/a_5777829.html
问题背景最近因为发现有一个表字段被设计成u_name,然后用工具生产的实体的属性字段是uName,就是首字母是小写,第二个字母是大写的这类属性,然后我们关于这个字段的一个接口的请求对象VO中字段也是沿用的uName。然后postman测试提交数据的时候,json请求体中字段属性也是uName。我们这个项目是采用SpringBoot2.1.5.RELEASE的,json序列化的工具是jackson,版本是2.9.8,这可能是jackson对于这类字段属性json序列号支持不太友好的地方。解决方案I.采用

JsonProperty注解给uName属性字段定义json字段别名./***姓名*/

JsonProperty(uName)privateStringuName;II.给请求VO实体添加

JsonAutoDetect注解

Data

JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.ANY,getterVisibility=JsonAutoDetect.Visibility.NONE)publicclassUserVO{/**-姓名*/privateStringuName;}注解说明

JsonAutoDetect该注解的作用是配置自动识别的类型:getterVisibility:定义getter方法的识别范围。isGetterVisibility:定义is-getter方法的识别范围(boolean类型的getter,很少用)。setterVisibility:定义setter方法的识别范围。creatorVisibility:定义构造器识别范围。fieldVisibility:定义属性识别范围。识别范围是一个枚举,包括:Visibility.ANY:表示从private到public修饰,都可识别。Visibility.NON_PRIVATE:表示除private修饰不可识别,其他都识别。Visibility.PROTECTED_AND_PUBLIC:protected和public都识别。Visibility.PUBLIC_ONLY:仅public可见。Visibility.NONE:所有皆不可见。Visibility.DEFAULT:缺省,所有被public修饰的属性、getter和所有setter皆可见。吾系李猿外,一个8年互联网产品研发经验的攻城狮,同时也是野生摄影师,古典设计爱好者,目前在一家公司做中台的建设工作,期待和朋友们有更多火花的交流。


转载请注明:http://www.aierlanlan.com/cyrz/6718.html