国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

java如何將對象轉(zhuǎn)換為map?如何將map轉(zhuǎn)換為對象?

這篇具有很好參考價值的文章主要介紹了java如何將對象轉(zhuǎn)換為map?如何將map轉(zhuǎn)換為對象?。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

1、使用 BeanUtils

2、ObjectMapper

3、Gson

4、Jackson

5、手動進行轉(zhuǎn)換


1、使用 BeanUtils

????????BeanUtils 是 Apache Commons BeanUtils 項目提供的一個常用的工具類庫,該工具類庫提供了一系列很有用的方法,包括將 Bean 轉(zhuǎn)換成 Map 對象、將 Map 對象轉(zhuǎn)換成 Bean 以及獲取 Bean 的屬性值等方法。

// 將 Map 轉(zhuǎn)換成對象
public static <T> T mapToBean(Map<String, Object> map, Class<T> beanClass) throws Exception {
    T bean = beanClass.newInstance();
    BeanUtils.populate(bean, map);
    return bean;
}

// 將對象轉(zhuǎn)換成 Map
public static Map<String, Object> beanToMap(Object bean) throws Exception {
    return BeanUtils.describe(bean);
}

2、ObjectMapper

????????ObjectMapper 是 Jackson 庫中提供的一個類,它可以將 Json 字符串轉(zhuǎn)換成 Java 對象,也可以將 Java 對象轉(zhuǎn)換成 Json 字符串。在將 Java 對象轉(zhuǎn)換成 Map 對象時也可以使用 ObjectMapper。

// 將 Map 轉(zhuǎn)換成對象
public static <T> T mapToBean(Map<?, ?> map, Class<T> beanClass) throws Exception {
    ObjectMapper mapper = new ObjectMapper();
    return mapper.convertValue(map, beanClass);
}

// 將對象轉(zhuǎn)換成 Map
public static Map<String, Object> beanToMap(Object bean) throws Exception {
    ObjectMapper mapper = new ObjectMapper();
    return mapper.convertValue(bean, Map.class);
}

3、Gson

????????Gson 是 Google 提供的一個 Java 庫,可以將 Java 對象轉(zhuǎn)換成 Json 字符串,也可以將 Json 字符串轉(zhuǎn)換成 Java 對象。在將 Java 對象轉(zhuǎn)換成 Map 對象時也可以使用 Gson。

// 將 Map 轉(zhuǎn)換成對象
public static <T> T mapToBean(Map<?, ?> map, Class<T> beanClass) {
    Gson gson = new Gson();
    String json = gson.toJson(map);
    return gson.fromJson(json, beanClass);
}

// 將對象轉(zhuǎn)換成 Map
public static Map<String, Object> beanToMap(Object bean) {
    Gson gson = new Gson();
    String json = gson.toJson(bean);
    return gson.fromJson(json, new TypeToken<Map<String, Object>>(){}.getType());
}

4、Jackson

????????Jackson 是另一個流行的 JSON 庫,可以將 Java 對象轉(zhuǎn)換成 Json 字符串,也可以將 Json 字符串轉(zhuǎn)換成 Java 對象。在將 Java 對象轉(zhuǎn)換成 Map 對象時也可以使用 Jackson。

// 將 Map 轉(zhuǎn)換成對象
public static <T> T mapToBean(Map<?, ?> map, Class<T> beanClass) throws Exception {
    ObjectMapper mapper = new ObjectMapper();
    String json = mapper.writeValueAsString(map);
    return mapper.readValue(json, beanClass);
}

// 將對象轉(zhuǎn)換成 Map
public static Map<String, Object> beanToMap(Object bean) throws Exception {
    ObjectMapper mapper = new ObjectMapper();
    String json = mapper.writeValueAsString(bean);
    return mapper.readValue(json, new TypeReference<Map<String, Object>>() {});
}

5、手動進行轉(zhuǎn)換

????????手動轉(zhuǎn)換的方式是最基本的一種轉(zhuǎn)換方式,通過獲取對象的屬性值,創(chuàng)建 Map 對象并把屬性存入 Map 對象中,或者從 Map 對象中獲取值,創(chuàng)建對象并把屬性值賦值給對象。手動轉(zhuǎn)換的方式需要自己進行拼接和處理數(shù)據(jù)類型轉(zhuǎn)換等工作,比較麻煩,但是靈活性比較高。文章來源地址http://www.zghlxwxcb.cn/news/detail-733347.html

/ 將 Map 轉(zhuǎn)換成對象
public static <T> T mapToBean(Map<?, ?> map, Class<T> beanClass) throws Exception {
    T bean = beanClass.newInstance();
    Field[] fields = beanClass.getDeclaredFields();
    for (Field field: fields) {
        field.setAccessible(true);
        String fieldName = field.getName();
        if (map.containsKey(fieldName)) {
            Object value = map.get(fieldName);
            field.set(bean, value);
        }
    }
    return bean;
}

// 將對象轉(zhuǎn)換成 Map
public static Map<String, Object> beanToMap(Object bean) throws Exception {
    Map<String, Object> map = new HashMap<>();
    Field[] fields = bean.getClass().getDeclaredFields();
    for (Field field: fields) {
        field.setAccessible(true);
        String fieldName = field.getName();
        Object value = field.get(bean);
        map.put(fieldName, value);
    }
    return map;
}

到了這里,關(guān)于java如何將對象轉(zhuǎn)換為map?如何將map轉(zhuǎn)換為對象?的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • <Java工具類>json字符串、List Map,List 對象轉(zhuǎn)換為相應(yīng)的JavaBean對象

    依賴: 工具類(直接上代碼): 使用場景: (1).使用泛型方法:把json字符串轉(zhuǎn)換為相應(yīng)的JavaBean對象 ; 一般用于:Controller層: 例如: (2).List Map轉(zhuǎn)換List 對象:如List,將第二個參數(shù)傳遞為Student對象; (3).List 對象轉(zhuǎn)換List Map:

    2024年02月12日
    瀏覽(29)
  • Java 對象拷貝與轉(zhuǎn)換-org.mapstruct:mapstruct 包(@Mapper、@Mapping)的使用

    Java 對象拷貝與轉(zhuǎn)換-org.mapstruct:mapstruct 包(@Mapper、@Mapping)的使用

    最近在學(xué)習(xí)技術(shù)時候,發(fā)現(xiàn)一個特別好用的包,org.mapstruct:mapstruct,它是專門用來處理 domin 實體類與 model 類的屬性映射的 它的優(yōu)勢: 很多項目大量映射的方式通過手動get、set,首先寫法很low,沒有技術(shù)含量。而且中間還可能牽涉了很多類型轉(zhuǎn)換,嵌套之類的繁瑣操作,非常

    2024年02月14日
    瀏覽(17)
  • java 對象list使用stream根據(jù)某一個屬性轉(zhuǎn)換成map的幾種方式

    可以使用Java 8中的Stream API將List轉(zhuǎn)換為Map,并根據(jù)某個屬性作為鍵或值。以下是一些示例代碼: 在這個示例中,將Person對象列表轉(zhuǎn)換為Map,其中鍵為Person對象的name屬性,值為Person對象本身。 在這個示例中,將Person對象列表轉(zhuǎn)換為Map,其中鍵為Person對象本身,值為Person對象的

    2024年02月13日
    瀏覽(97)
  • Java中使用MapStruct實現(xiàn)對象轉(zhuǎn)換時使用@Mapping的expression表達式實現(xiàn)自定義轉(zhuǎn)換規(guī)則(多對一、獲取當(dāng)前Date)

    Java中使用MapStruct實現(xiàn)對象轉(zhuǎn)換/實體屬性賦值/Bean屬性映射,避免大量setter和getter: Java中使用MapStruct實現(xiàn)對象轉(zhuǎn)換/實體屬性賦值/Bean屬性映射,避免大量setter和getter_霸道流氓氣質(zhì)的博客-CSDN博客 上面介紹了mapstruct的簡單使用,某些場景下需要自定義轉(zhuǎn)換規(guī)則,比如記錄時間字

    2024年02月14日
    瀏覽(23)
  • Java中如何優(yōu)雅的把Map轉(zhuǎn)為對象

    在項目開發(fā)中,經(jīng)常碰到map轉(zhuǎn)實體對象或者對象轉(zhuǎn)map的場景,工作中,很多時候我們可能比較喜歡使用第三方j(luò)ar包的API對他們進行轉(zhuǎn)化,而且用起來也還算方便,比如像fastJson就可以輕松實現(xiàn)map和對象的互轉(zhuǎn),但這里,我想通過反射的方式對他們做轉(zhuǎn)化,也算是對反射的學(xué)習(xí)

    2024年02月13日
    瀏覽(17)
  • Java如何遍歷Map對象集合(多種方式)6種方式

    今天比昨天,更優(yōu)秀 Map簡介 Map是用于保存具有映射關(guān)系的數(shù)據(jù),保存兩組值,key和value,這兩組值可以是任何應(yīng)用類型的數(shù)據(jù)。 Map典型的實現(xiàn)類是HashMap、Hashtable(HashMap子類還有LinkedHashMap)、SortedMap子接口及實現(xiàn)類TreeMap、WeakHashMap、IndentityHashMap等 Map遍歷第一種 注意:如果

    2024年02月08日
    瀏覽(23)
  • Java如何使用XMLBeans實現(xiàn)XML和Java對象的相互轉(zhuǎn)換

    原文和更多內(nèi)容:?Java如何使用XMLBeans實現(xiàn)XML和Java對象的相互轉(zhuǎn)換 (techdatafuture.com) 要使用XMLBeans實現(xiàn)XML和Java對象的相互轉(zhuǎn)換,可以按照以下步驟進行操作: 1. 添加XMLBeans Maven依賴: dependency ? ? groupIdorg.apache.xmlbeans/groupId ? ? artifactIdxmlbeans/artifactId ? ? version3.1.0/version /depen

    2024年02月16日
    瀏覽(24)
  • Java中實體與Map的相互轉(zhuǎn)換

    一、在Java中,可以通過以下方法將實體類轉(zhuǎn)換為Map: 利用Java反射機制: 利用Java 8 Stream API: 以上兩種方法都可以將實體類轉(zhuǎn)換為Map。需要注意的是,這些方法僅會將實體類中的屬性轉(zhuǎn)換為Map中的鍵值對,不會包含方法、構(gòu)造器、父類屬性等其他部分。 二、要將map轉(zhuǎn)換為實

    2024年02月05日
    瀏覽(30)
  • Java 8 中Map轉(zhuǎn)成對象

    功能: 1.?HashMap<Object,Object> 轉(zhuǎn)成對象?AlertDeviceInfo 2?List<HashMap<Object,Object>> 轉(zhuǎn)為 List<AlertDeviceInfo 核心代碼: 工具包 實體類,如果要控制輸出屬性,就展示要輸出的,比如上面11個屬性,只要2個,寫一個輸出對象,就只有2個屬性的,我這根據(jù)有個需求,不同公司返

    2024年02月12日
    瀏覽(16)
  • 如何使用Stream流將List轉(zhuǎn)換為Map

    以下程序用到的基礎(chǔ)代碼:

    2024年02月04日
    瀏覽(18)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包