中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SpringBoot如何使用Jackson返回JSON數據日期格式化

發布時間:2021-07-06 11:34:22 來源:億速云 閱讀:518 作者:chen 欄目:大數據

這篇文章主要講解了“SpringBoot如何使用Jackson返回JSON數據日期格式化”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“SpringBoot如何使用Jackson返回JSON數據日期格式化”吧!

@Bean
@Primary
@ConditionalOnMissingBean(ObjectMapper.class)
public ObjectMapper jacksonObjectMapper(Jackson2ObjectMapperBuilder builder)
    {
        ObjectMapper objectMapper = builder.createXmlMapper(false).build();

        // 通過該方法對mapper對象進行設置,所有序列化的對象都將按改規則進行系列化
        // Include.Include.ALWAYS 默認
        // Include.NON_DEFAULT 屬性為默認值不序列化
        // Include.NON_EMPTY 屬性為 空("") 或者為 NULL 都不序列化,則返回的json是沒有這個字段的。這樣對移動端會更省流量
        // Include.NON_NULL 屬性為NULL 不序列化
        objectMapper.setSerializationInclusion(JsonInclude.Include.NON_EMPTY);
        objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
        // 允許出現特殊字符和轉義符
        objectMapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_CONTROL_CHARS, true);
        // 允許出現單引號
        objectMapper.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true);
        // 字段保留,將null值轉為""
        objectMapper.getSerializerProvider().setNullValueSerializer(new JsonSerializer<Object>()
        {
            @Override
            public void serialize(Object o, JsonGenerator jsonGenerator,
                                  SerializerProvider serializerProvider)
                    throws IOException
            {
                jsonGenerator.writeString("");
            }
        });
        return objectMapper;
    }
//https://www.cnblogs.com/liaojie970/p/9396334.html
spring:
  jackson:
    #日期格式化
    date-format: yyyy-MM-dd HH:mm:ss
    serialization:
       #格式化輸出 
      indent_output: true
      #忽略無法轉換的對象
      fail_on_empty_beans: false
    #設置空如何序列化
    defaultPropertyInclusion: NON_EMPTY
    deserialization:
      #允許對象忽略json中不存在的屬性
      fail_on_unknown_properties: false
    parser:
      #允許出現特殊字符和轉義符
      allow_unquoted_control_chars: true
      #允許出現單引號
      allow_single_quotes: true
/**
     * 測試日期
     * @param joinDay
     * @return
     */
    @RequestMapping("date")
    public Date testDate(Date joinDay){
        return joinDay;
    }


package com.streamyear.course.config;
 
import org.springframework.core.convert.converter.Converter;
import org.springframework.stereotype.Component;
 
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
 
/**
 * 全局頁面傳入日期字符串,自動轉換成日期格式
 */
@Component
public class DateConverterConfig implements Converter<String, Date> {
 
    private static final List<String> formarts = new ArrayList<>(4);
    static{
        formarts.add("yyyy-MM");
        formarts.add("yyyy-MM-dd");
        formarts.add("yyyy-MM-dd hh:mm");
        formarts.add("yyyy-MM-dd hh:mm:ss");
    }
 
    @Override
    public Date convert(String source) {
        String value = source.trim();
        if ("".equals(value)) {
            return null;
        }
        if(source.matches("^\\d{4}-\\d{1,2}$")){
            return parseDate(source, formarts.get(0));
        }else if(source.matches("^\\d{4}-\\d{1,2}-\\d{1,2}$")){
            return parseDate(source, formarts.get(1));
        }else if(source.matches("^\\d{4}-\\d{1,2}-\\d{1,2} {1}\\d{1,2}:\\d{1,2}$")){
            return parseDate(source, formarts.get(2));
        }else if(source.matches("^\\d{4}-\\d{1,2}-\\d{1,2} {1}\\d{1,2}:\\d{1,2}:\\d{1,2}$")){
            return parseDate(source, formarts.get(3));
        }else {
            throw new IllegalArgumentException("Invalid boolean value '" + source + "'");
        }
    }
 
    /**
     * 格式化日期
     * @param dateStr String 字符型日期
     * @param format String 格式
     * @return Date 日期
     */
    public  Date parseDate(String dateStr, String format) {
        Date date=null;
        try {
            DateFormat dateFormat = new SimpleDateFormat(format);
            date = dateFormat.parse(dateStr);
        } catch (Exception e) {
 
        }
        return date;
    }
 
}
@Configuration
public class JacksonConfiguration {

  @Bean
  public MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter() {
    MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
    ObjectMapper objectMapper = new ObjectMapper();

    // 忽略json字符串中不識別的屬性
    objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
    // 忽略無法轉換的對象 “No serializer found for class com.xxx.xxx”
    objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);

    // NULL不參與序列化
//    objectMapper.setSerializationInclusion(Include.NON_NULL);
    // PrettyPrinter 格式化輸出
    objectMapper.configure(SerializationFeature.INDENT_OUTPUT, true);

    // 指定時區,默認 UTC,而不是 jvm 默認時區
    objectMapper.setTimeZone(TimeZone.getTimeZone("GMT+8:00"));
    // 日期類型處理
    objectMapper.setDateFormat(new SimpleDateFormat(DateUtil.DEFAULT_FORMAT_DATETIME));

    converter.setObjectMapper(objectMapper);
    return converter;
  }

  /**
   * BeanPostProcessor 的便捷實現,以便對帶注解的方法上執行方法級別的校驗
   * 注意:需要在目標類上室友 @Validated 注解進行注釋,以便搜索其內聯約束注釋的方法
   * A convenient BeanPostProcessor implementation
   * that delegates to a JSR-303 provider for performing method-level validation on annotated methods
   * @return
   */
  @Bean
  public MethodValidationPostProcessor methodValidationPostProcessor() {
    return new MethodValidationPostProcessor();
  }

}

感謝各位的閱讀,以上就是“SpringBoot如何使用Jackson返回JSON數據日期格式化”的內容了,經過本文的學習后,相信大家對SpringBoot如何使用Jackson返回JSON數據日期格式化這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

区。| 大埔区| 青浦区| 莫力| 万山特区| 历史| 丹棱县| 买车| 保康县| 台州市| 北票市| 南投市| 商南县| 弋阳县| 大港区| 商都县| 泗水县| 云南省| 桐城市| 罗平县| 时尚| 海淀区| 手机| 泰州市| 潜江市| 曲水县| 剑川县| 宜州市| 大邑县| 呈贡县| 沅陵县| 宜黄县| 蒙城县| 同仁县| 宁强县| 竹山县| 河西区| 云南省| 罗山县| 澎湖县| 成武县|