解决FastJson中JSON和JavaBean互转实体属性首字母大写的问题-Spring专区论坛-技术-SpringForAll社区

解决FastJson中JSON和JavaBean互转实体属性首字母大写的问题

前言

一般我们在写实体是,基本上都遵循java命名规范,属性名都采用小驼峰方式,但是有时候我们调某些第三方接口,会存在属性名首字母大写的可能,因此会出现json转为实体会收不到值。实体转为json会出现首字母小写的情况,这样的话第三方接口本来按首字母大写的方式取值,结果是小写,造成了取不到值的问题。 

json格式转为JavaBean

如果我们在postman里已json格式提交,后端以对象进行接收,会发现首字母大写的属性接收不到值。其实是有值的,只不过首字母变成小写了,和大写的匹配不上,所以是null

解决方案:

只需给该字段加上注解:@JsonProperty(“xxx”)即可,加上后会发现能取到值了

import com.fasterxml.jackson.annotation.JsonProperty;
@JsonProperty("FieldAC")//解决首字母大写json和javabean转换接收不到值的问题
private String FieldAC;

JavaBean转json

上边是json转javabean出现取不到值,而JavaBean转json会出现转换后的json为首字母小写的属性,此时也不符合我们的要求

image

 解决方案:

只需给该字段加上注解@JSONField(name = “xxx”)即可,这样就不会出问题了。

import com.alibaba.fastjson.annotation.JSONField;
@JSONField(name = "FieldAC")
private String FieldAC;

要是懒得动脑子,都加上好了。

@JsonProperty("FieldAC")//解决首字母大写json和javabean转换接收不到值的问题
@JSONField(name = "FieldAC")
private String FieldAC;

 

请登录后发表评论

    没有回复内容