最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

@JsonProperty和@JSONField注解的區(qū)別解析(最新)

 更新時間:2024年04月01日 11:15:17   作者:四問四不知  
Jackson是一款優(yōu)秀的JSON解析庫,添加了依賴之后就可以使用對應的注解,讓我們能夠自由的將Java對象和JSON做轉換,這篇文章主要介紹了@JsonProperty和@JSONField注解的區(qū)別,需要的朋友可以參考下

JSON(JavaScript Object Notation)

json是一種常見的數據交換的輕量級數據格式。HTTP協(xié)議傳輸數據可以有多種數據格式,比如下面幾種常見數據傳輸格式,除此之外還有其他的數據交換格式。

數據傳輸類型編碼類型示例
表單格式application/x-www-form-urlencodedusername=zk&password=123
JSON(JavaScript Object Notation)application/json{"username": "zk","password": "123"}
XML(eXtensible Markup Language)application/xml<user><username>zk</username><password>123</password></user>

Jackson

Jackson是一款優(yōu)秀的JSON解析庫,添加了依賴之后就可以使用對應的注解,讓我們能夠自由的將Java對象和JSON做轉換。

比如Java對象轉JSON

@JsonProperty和@JSONField

為了解決JSON字符串和其實體bean的屬性名匹配不上的問題,@JsonProperty和@JSONField都可以將某一屬性名序列化為另一屬性名。

那么@JsonProperty和@JSONField有什么區(qū)別呢?

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.hust.zhang.serializable.JsonUtils;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
public class JsonPropertiesVsJsonField {
    @AllArgsConstructor
    @Data
    @Builder
    static class Properties {
        @JsonProperty(value = "json-properties")
        private String jsonProperties;
        @JSONField(name = "json-field")
        private String jsonField;
    }
    public static void main(String[] args) {
        Properties properties = Properties.builder()
                .jsonProperties("test-properties")
                .jsonField("test-field")
                .build();
        System.out.println(JsonUtils.toJson(properties));
        System.out.println(JSON.toJSONString(properties));
    }
}

輸出結果如下,

{"jsonField":"test-field","json-properties":"test-properties"}
{"json-field":"test-field","jsonProperties":"test-properties"}

可以看到調用JsonUtils.toJson方法時,加了@JsonProperty才與bean實際屬性名匹配。
其中該方法定義如下,ObjectMapper的writeValueAsString方法。

/**
 * Json轉換工具類
 */
@Slf4j
public final class JsonUtils {
    /**
     * 私有無參構造方法 常量類不能實例化,直接引用
     */
    private JsonUtils() {
    }
    private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
    static {
        OBJECT_MAPPER.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
        OBJECT_MAPPER.configure(JsonReadFeature.ALLOW_UNESCAPED_CONTROL_CHARS.mappedFeature(), true);
    }
    public static String toJson(Object object) {
        try {
            return OBJECT_MAPPER.writeValueAsString(object);
        } catch (JsonProcessingException e) {
            log.error("Failed to write the object to string" + object.getClass().getName());
            return null;
        }
    }
    public static <T>T parse(String json, Class<T> tClass){
        try {
            return OBJECT_MAPPER.readValue(json,tClass);
        } catch (JsonProcessingException e) {
            log.error("Failed to deserialize JSON content, json value : " + json);
            return null;
        }
    }
}

除此之外還可以看看@JsonAlias注解。

參考鏈接

1、https://baijiahao.baidu.com/s?id=1765042798858921947&wfr=spider&for=pc
2、https://developer.aliyun.com/article/768691

到此這篇關于@JsonProperty和@JSONField注解的區(qū)別的文章就介紹到這了,更多相關@JsonProperty和@JSONField注解內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • intellij idea修改maven配置時總是恢復默認配置的解決方法idea版本(2020.2.x)

    intellij idea修改maven配置時總是恢復默認配置的解決方法idea版本(2020.2.x)

    這篇文章主要介紹了intellij idea修改maven配置時總是恢復默認配置的解決方法idea版本(2020.2.x),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • 詳解如何將已有項目改造為Spring Boot項目

    詳解如何將已有項目改造為Spring Boot項目

    本篇文章主要介紹了如何將已有項目改造為Spring Boot項目,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • Java線程在什么情況下可以終止

    Java線程在什么情況下可以終止

    Thread線程類自帶的stop方法,但是jdk不建議使用,因為stop方法終止線程只是強行終止,內存中部分值可能已發(fā)生變化,并未保證數據的一致性,將會導致線程安全問題,那么在什么情況下可以終止線程呢,本篇帶你探究一下
    2022-04-04
  • java復制文件的4種方式及拷貝文件到另一個目錄下的實例代碼

    java復制文件的4種方式及拷貝文件到另一個目錄下的實例代碼

    這篇文章主要介紹了java復制文件的4種方式,通過實例帶給大家介紹了java 拷貝文件到另一個目錄下的方法,需要的朋友可以參考下
    2018-06-06
  • IDEA 每次新建工程都要重新配置 Maven的解決方案

    IDEA 每次新建工程都要重新配置 Maven的解決方案

    這篇文章主要介紹了IDEA 每次新建工程都要重新配置Maven解決方案,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-05-05
  • Java中Optional類及orElse方法詳解

    Java中Optional類及orElse方法詳解

    這篇文章主要為大家介紹了Java中Optional類及orElse()方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • java實現(xiàn)上傳圖片尺寸修改和質量壓縮

    java實現(xiàn)上傳圖片尺寸修改和質量壓縮

    這篇文章主要為大家詳細介紹了java實現(xiàn)上傳圖片尺寸修改和質量壓縮,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • Java自定義Spring配置標簽

    Java自定義Spring配置標簽

    這篇文章主要介紹了Java自定義Spring配置標簽,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,感興趣的小伙伴可以參考一下
    2022-08-08
  • 電腦上安裝多個JDK版本時該如何自由切換(詳細圖文)

    電腦上安裝多個JDK版本時該如何自由切換(詳細圖文)

    我們在學習的過程中經常用到不同的jdk版本,那么如何在一臺電腦上同時安裝多個jdk版本并進行切換呢,這篇文章主要給大家介紹了關于電腦上安裝多個JDK版本時該如何自由切換的相關資料,需要的朋友可以參考下
    2023-10-10
  • Java窗口精細全方位講解

    Java窗口精細全方位講解

    這篇文章呢,將會系統(tǒng)的精細的教會鐵鐵們如何自己寫一個完整的窗口;看完之后窗口穩(wěn)拿下!!!所以呢由于詳細,知識點多,可能有點長,鐵鐵們慢慢仔細閱讀吧;文章寫的還是一如既往快樂的,哈哈哈
    2021-08-08

最新評論

明光市| 黄骅市| 江口县| 玉田县| 吐鲁番市| 沿河| 邵阳市| 宿松县| SHOW| 峡江县| 锦州市| 梁山县| 阳曲县| 长垣县| 滨州市| 太康县| 平果县| 高台县| 平安县| 绥棱县| 志丹县| 旺苍县| 田林县| 明溪县| 宜春市| 天气| 鄯善县| 松江区| 扎囊县| 封开县| 墨竹工卡县| 苍山县| 阿荣旗| 兰考县| 庐江县| 铜鼓县| 金川县| 乐平市| 高碑店市| 云安县| 池州市|