springboot dto确定的属性与postman结果不一致

问题描述 投票:0回答:1

我的DTO最后一个属性是lAlarmTime,但是我用mapstruct帮我把Entity转DTO,但是我用postman发起请求结果是lalarmTime

DTO

@Data
public class GetAlarmDto {

    private Long id;

    private String alarmId;

    private String item;

    private String uuid;

    private String criticalPoint;

    private Integer criticalNumber;

    private Integer continuance;

    private Integer coolDownTime;

    private Integer status;
    
    private String lAlarmTime;

Mapstruce 实体 -> DTO

@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface GetAlarmMapper extends BaseMapper<GetAlarmDto, Alarm> {

    @Override
    default GetAlarmDto toDto(Alarm entity) {
        if ( entity == null ) {
            return null;
        }

        GetAlarmDto getAlarmDto = new GetAlarmDto();

        getAlarmDto.setId( entity.getId() );
        getAlarmDto.setAlarmId( entity.getAlarmId() );
        getAlarmDto.setItem(entity.getMonitorItem().getItemName());
        getAlarmDto.setUuid(entity.getVmInstance().getUuid());
        getAlarmDto.setCriticalPoint( entity.getCriticalPoint() );
        getAlarmDto.setCriticalNumber( entity.getCriticalNumber() );
        getAlarmDto.setContinuance( entity.getContinuance() );
        getAlarmDto.setCoolDownTime( entity.getCoolDownTime() );
        getAlarmDto.setStatus( entity.getStatus() );
        getAlarmDto.setLAlarmTime(getLastAlarmTime(entity.getLastAlarmTime()));

        return getAlarmDto;
    }

邮差结果

Postman Result Picture

我知道可以通过@jsonproperty来实现,但是我还是想知道为什么会这样,是在序列化或者反序列化的过程中受json的影响还是

json spring-boot postman dto mapstruct
1个回答
0
投票

通常建议在定义变量名时遵循标准的 Java 命名约定,通常使用驼峰命名法,第一个单词的首字母小写,后面每个单词的首字母大写。

在您的例子中,变量名“lAlarmTime”不遵循此约定,因为它在变量名中间使用大写字母“A”。您可能需要考虑将变量重命名为“lastAlarmTime”以使其与命名约定保持一致。

此外,“private”关键字表示该变量只能在定义它的类中访问。如果您希望其他类能够访问此变量,您可能需要考虑使用 getter 和/或 setter 方法或将访问级别更改为“public”。

在你的情况下,你可以使用下面示例中的东西!..

@Data
public class GetAlarmDto {
    @JsonProperty("YourCustomName") 
    private String lAlarmTime;
}
© www.soinside.com 2019 - 2024. All rights reserved.