@JsonNaming 该注解用于实体类中指定
@JsonNaming批注用于为序列化中的属性选择命名策略,覆盖默认设置。 使用value元素
我们可以指定任何策略,包括自定义策略。
除了默认值LOWER_CAMEL_CASE(例如lowerCamelCase)外,Jackson库还为我们提供了另外四种内置的属性命名策略,以方便使用:
KEBAB_CASE:名称元素之间用连字符分隔,例如 kebab-case。
LOWER_CASE:所有字母均为小写字母,没有分隔符,例如 lowercase。
LOWER_DOT_CASE:所有字母均为小写字母,用点连接字符,例如 lower.case。
SNAKE_CASE:所有字母均为小写,并在名称元素之间使用下划线作为分隔符,例如 snake_case。
UPPER_CAMEL_CASE:所有名称元素,包括第一个,都以大写字母开头,后跟小写字母,并且没有分隔符,例如 UpperCamelCase。
实现代码
@Data
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
public class ThreeFarmersHealthBizVo implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 设备序列号
*/
@JSONField(name="device_code")
private String deviceCode;
/**
* 厂家代码
*/
@JSONField(name="factory_code")
private String factoryCode;
/**
* 数据类型代码
*/
@JSONField(name="data_type")
private String dataType;
/**
* 物联网平台数据uuid
*/
@JSONField(name="data_uid")
private String dataUid;
/**
* 数据包内容,包含GPS等定位信息
* 该map可被com.zdww.agedpeople.health.iot.content下的类转换
* 需要根据不同的数据类型(dataType)转换
*/
@JSONField(name="content")
private Map<String, Object> content;
/**
* 用户姓名
*/
@ApiModelProperty(value = "用户姓名")
private String name;
}