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

溫馨提示×

溫馨提示×

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

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

怎么用Jackson實現Map與Bean互轉方式

發布時間:2021-08-19 11:18:50 來源:億速云 閱讀:226 作者:chen 欄目:開發技術

本篇內容介紹了“怎么用Jackson實現Map與Bean互轉方式”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

Jackson Map與Bean互轉

在使用 java 開發中,通常需要把 Map 轉成 Bean,或把 Bean 轉成 Map,這就用的工具類,在此推薦使用import com.fasterxml.jackson.databind.ObjectMapper;包下的ObjectMapper類,比 JsonObject 效率高

下面就列舉了幾種使用方法

1、pom.xml
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.9.6</version>
    <scope>compile</scope>
</dependency>
2、java 代碼
package com.jin.demo.jackson;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.HashMap;
import java.util.Map;
/**
 * 使用 Jackson工具
 * map to bean
 * bean to map
 *
 * @auther jinsx
 * @date 2019-03-26 16:37
 */
public class JacksonTest {
    private static final ObjectMapper mapper = new ObjectMapper();
    public static void main(String[] args) throws Exception {
        // 測試 將Map轉成指定的Bean
        Map<String, Object> map = new HashMap<>();
        map.put("name", "張三");
        Person o = (Person)JacksonTest.mapToBean(map, Person.class);
        System.out.println(o);
        // 測試 將Bean轉成Map
        Person person = new Person();
        person.setAge(18);
        Map map1 = JacksonTest.beanToMap(person);
        System.out.println(map1);
    }
    // 將對象轉成字符串
    public static String objectToString(Object obj) throws Exception {
        return mapper.writeValueAsString(obj);
    }
    // 將Map轉成指定的Bean
    public static Object mapToBean(Map map, Class clazz) throws Exception {
        return mapper.readValue(objectToString(map), clazz);
    }
    // 將Bean轉成Map
    public static Map beanToMap(Object obj) throws Exception {
        return mapper.readValue(objectToString(obj), Map.class);
    }
}
3、Person 類
package com.jin.demo.jackson;
import java.io.Serializable;
import java.util.Date;
/**
 * @auther jinsx
 * @date 2019-03-26 17:30
 */
public class Person implements Serializable {
    private int age;
    private String name;
    private Date birthday;
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Date getBirthday() {
        return birthday;
    }
    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }
    @Override
    public String toString() {
        return "Person{" +
                "age=" + age +
                ", name='" + name + '\'' +
                ", birthday=" + birthday +
                '}';
    }
}

Jackson-ObjectMapper json字符串、bean、map、list互相轉換

1、對象轉json字符串

ObjectMapper mapper = new ObjectMapper();
User user = new User();
String userJson = mapper.writeValueAsString(user);

2、Map轉json字符串

ObjectMapper mapper = new ObjectMapper();
Map map = new HashMap();
String json = mapper.writeValueAsString(map);

3、數組list轉json字符串

ObjectMapper mapper = new ObjectMapper();
User[] uArr = {user1, user2};
String jsonfromArr = mapper.writeValueAsString(uArr);

4、json字符串轉對象

ObjectMapper mapper = new ObjectMapper();
String expected = "{\"name\":\"ZhangSan\"}";
User user = mapper.readValue(expected, User.class);

5、json字符串轉Map

ObjectMapper mapper = new ObjectMapper();
String expected = "{\"name\":\"ZhangSan\"}";
Map userMap = mapper.readValue(expected, Map.class);

6、json字符串轉對象數組List

ObjectMapper mapper = new ObjectMapper();
String expected = "[{\"name\":\"Zhangsan\"},{\"name\":\"Lisi\"}]";
CollectionType listType = mapper.getTypeFactory().constructCollectionType(ArrayList.class, User.class);
List<User> userList = mapper.readValue(expected, listType);

7、json字符串轉Map數組List<Map<String,Object>>

ObjectMapper mapper = new ObjectMapper();
String expected = "[{\"name\":\"Zhangsan\"},{\"nameEn\":\"Lisi\"}]";
CollectionType listType = mapper.getTypeFactory().constructCollectionType(ArrayList.class, Map.class);
List<Map<String,Object>> userList = mapper.readValue(expected, listType);

8、jackson默認將對象轉換為LinkedHashMap

ObjectMapper mapper = new ObjectMapper();
String expected = "[{\"name\":\"Zhangsan\"},{\"nameEn\":\"Lisi\"},{\"name\":\"Test\"}]";
ArrayList arrayList = mapper.readValue(expected, ArrayList.class);

9、json字符串轉對象設置格式

ObjectMapper mapper = new ObjectMapper();
//設置date轉換格式
SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
mapper.setDateFormat(fmt);
String expected = "{\"name\":\"ZhangSan\",\"bir\":\"2021-04-15 14:00:00\"}";
User user = mapper.readValue(expected, User.class);

10、忽略未知字段

ObjectMapper mapper = new ObjectMapper();
//設置忽略未知字段
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
String expected = "{\"name\":\"ZhangSan\",\"job\":\"teacher\"}";
User user = mapper.readValue(expected, User.class);

“怎么用Jackson實現Map與Bean互轉方式”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

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

AI

东山县| 仲巴县| 安达市| 垫江县| 桐梓县| 上林县| 和林格尔县| 静乐县| 托克逊县| 博乐市| 会宁县| 栾城县| 通江县| 萝北县| 沾益县| 津南区| 武城县| 葵青区| 柘荣县| 合川市| 加查县| 平谷区| 通化县| 东丰县| 探索| 甘孜| 革吉县| 绿春县| 垦利县| 闽清县| 灵寿县| 许昌县| 友谊县| 普格县| 衢州市| 阿克苏市| 眉山市| 昆山市| 西吉县| 遂溪县| 疏附县|