国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - springboot jackson自定義序列化和反序列化實例

springboot jackson自定義序列化和反序列化實例

2022-02-16 14:28yufengaotianya Java教程

這篇文章主要介紹了spring boot jackson自定義序列化和反序列化實例,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

jackson自定義序列化和反序列

spingmvc使用httpmessageconverter接口來轉換http請求和響應。

如果需要添加和自定義轉換器,則可以使用spring boot的HttpMessageConverters類;任何存在于上下文中的HttpMessageConverter的ben都會被添加到轉換器列表中。

如果想使用Jackson對json進行序列化和反序列化,則可能需要編寫自己的JsonSerializer和JsonDeserializer類。使用spring boot的@JsonComponent注釋。使用@JsonComponent注釋會自動被注冊到Jackson;

序列化JsonSerializer

首先繼承JsonSerializer,重寫Serialize函數

?
1
2
3
4
5
6
7
8
9
10
11
@JsonComponent   //此注釋會自動將 Serialize和Deserializer注冊到jackson之中。
public class CustomeJackSon {
    public static class Serialize extends JsonSerializer<Date>{
        @Override
        public void serialize(Date date, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
            SimpleDateFormat _format = new SimpleDateFormat("yyyy-mm--dd");
            String _dateStr =  _format.format(date);
            jsonGenerator.writeString(_dateStr);
        }
    }
}

然后在需要序列化的對象屬性上添加注解@JsonSerialize(using = CustomeJackSon.Serialize.class)

?
1
2
@JsonSerialize(using = CustomeJackSon.Serialize.class)
    private Date date;

最后請求http返回對象

?
1
2
3
4
5
6
7
8
9
User home(User id){
        applicationArguments.getOptionNames();
        User _user = new User();
        _user.setId(1);
        _user.setName("張三豐");
        _user.setDate(new Date());
        return _user;
        //return new Date();
    }

反序列化JsonDeserializer

首先繼承JsonDeserializer類,重寫deserialize函數,自定義自己的反序列化邏輯

?
1
2
3
4
5
6
7
8
9
10
11
12
@JsonComponent   //此注釋會自動將 Serialize和Deserializer注冊到jackson之中。
public class CustomeJackSon {
    public static class Deserializer extends JsonDeserializer<Date>{
 
        @Override
        public Date deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
            String _name = jsonParser.getCurrentName();
            long _ss = jsonParser.getLongValue();
            return null;
        }
    }
}

然后在反序列化的屬性上添加@JsonDeserialize注釋

?
1
2
3
4
5
6
7
@JsonDeserialize(using = CustomeJackSon.Deserializer.class)
    private Date date;
最后在controller參數要使用@RequestBody
@RequestMapping(value = "getValue")
    public String getValue(@RequestBody User user){
        return  "0000000";
    }

客戶端在請求相應的時候請求的Content-Type需要是application/json

小結一下

需要自定義jackson的序列化和反序列化,在需要繼承JsonSerializer 和JsonDeserializer類并重寫其序列化和反序列化函數;

序列化時需要在要序列化的對象屬性上添加@JsonSerialize注釋;

反序列化時需要controller參數使用@RequestBody注釋,要反序列化的對象屬性上使用@JsonDeserialize注釋,客戶端請求的Content-Type需要是application/json

springboot 自定義序列化器

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@SpringBootConfiguration
public class WebConfig extends WebMvcConfigurationSupport {
    /**
     * 自定義序列化器
     */
    @Override
    protected void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        final MappingJackson2HttpMessageConverter jackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter();
        // Long->String
        final ToStringSerializer toStringSerializer = new ToStringSerializer(Long.class);
        // date-> pattern format
        final DateSerializer dateSerializer = new DateSerializer(false, new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"));
        SimpleModule simpleModule = new SimpleModule();
        simpleModule.addSerializer(toStringSerializer);
        simpleModule.addSerializer(dateSerializer);
        jackson2HttpMessageConverter.getObjectMapper().registerModule(simpleModule);
        converters.add(jackson2HttpMessageConverter);
        super.configureMessageConverters(converters);
    }
}

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/yu_feng_/article/details/103732521

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 亚洲午夜精品一区二区三区 | 91免费视频在线 | 精品一区二区三区成人精品 | 国产成人精品免费 | 免费久久久久 | 色婷婷在线视频观看 | 精品日韩一区二区三区 | 亚洲精品在线看 | 中文字幕在线观看一区二区三区 | 久久精品亚洲精品国产欧美kt∨ | 91麻豆蜜桃一区二区三区 | 午夜精品一区二区三区免费视频 | 国产激情不卡 | 成人午夜免费视频 | 久久精品在线视频 | 日韩在线一区二区三区免费视频 | 亚洲午夜精品 | 成人免费一区二区三区视频网站 | 国产一区二区av | 亚洲第一se情网站 | 99久久99久久久精品色圆 | 午夜成人在线视频 | 91亚洲国产成人久久精品网站 | 99久久视频| 久久久精品网站 | 91精品国产乱码久久久久久 | 一区二区三区国产好的精 | 国产精品中文字幕在线观看 | 真实的国产乱xxxx在线 | 亚洲精品免费在线 | 亚洲国产一区二区三区日本久久久 | 欧美 日韩 国产 一区 | 午夜成人免费电影 | 综合久久99 | a免费在线| 欧美一二区 | 久久久久九九九九九 | 欧洲毛片 | 91av免费| 国产精品久久久久久久久久免费看 | 国产综合精品一区二区三区 |