Convert object/bean to map
http://www.leveluplunch.com/java/examples/convert-object-bean-properties-map-key-value/
This example will show how to convert a java object, bean or POJO to a map. The object properties will represent the map's keys while the properties value will represent the map's values. We will use straight up java, apache commons beanutils and jackson's objectMapper techniques.
Setup
public class NoteBook {
private double numberOfSheets;
private String description;
public NoteBook(double numberOfSheets, String description) {
super();
this.numberOfSheets = numberOfSheets;
this.description = description;
}
public double getNumberOfSheets() {
return numberOfSheets;
}
public String getDescription() {
return description;
}
}
Straight up Java
@Test
public void convert_object_to_map_java() throws IntrospectionException,
IllegalAccessException, IllegalArgumentException,
InvocationTargetException {
NoteBook actionMethodNoteBook = new NoteBook(100, "Action Method Notebook");
Map<String, Object> objectAsMap = new HashMap<String, Object>();
BeanInfo info = Introspector.getBeanInfo(actionMethodNoteBook.getClass());
for (PropertyDescriptor pd : info.getPropertyDescriptors()) {
Method reader = pd.getReadMethod();
if (reader != null)
objectAsMap.put(pd.getName(),reader.invoke(actionMethodNoteBook));
}
assertThat(objectAsMap, hasEntry("numberOfSheets", (Object) new Double(100.0)));
assertThat(objectAsMap, hasEntry("description", (Object) "Action Method Notebook"));
}
Apache Commons
@Test
public void convert_object_to_map_apache_commons () throws IllegalAccessException,
InvocationTargetException, NoSuchMethodException {
NoteBook fieldNoteBook = new NoteBook(878, "Field Notebook");
@SuppressWarnings("unchecked")
Map<String, Object> objectAsMap = BeanUtils.describe(fieldNoteBook);
assertThat(objectAsMap, hasEntry("numberOfSheets", (Object) "878.0"));
assertThat(objectAsMap, hasEntry("description", (Object) "Field Notebook"));
}
Jackson
@Test
public void convert_object_to_map_jackson () {
NoteBook moleskineNoteBook = new NoteBook(200, "Moleskine Notebooks");
ObjectMapper objectMapper = new ObjectMapper();
@SuppressWarnings("unchecked")
Map<String, Object> objectAsMap = objectMapper.convertValue(moleskineNoteBook, Map.class);
assertThat(objectAsMap, hasEntry("numberOfSheets", (Object) new Double(200.0)));
assertThat(objectAsMap, hasEntry("description", (Object) "Moleskine Notebooks"));
}
Convert object/bean to map posted by Justin Musgrove on 15 December 2013
Tagged: java and java-general
============ 我說2句: 最後我選擇用jackson. 因為BeanUtils.describe方法會解出"class":"類名",而且只會解出getProperty()方法對應的屬性,對於public屬性不會解出。
相關文章
- 「Python」Convert map object to numpy array in python 3PythonObject
- java將map轉成bean工具JavaBean
- [Javascript] Object.groupBy & Map.groupByJavaScriptObject
- 詳解object detection中的mAPObject
- Map<String, Object>轉換成uri請求串Object
- 解決Tensorflow ValueError: Failed to convert a NumPy array to a Tensor (Unsupported object type numpy.ndarray)ErrorAIObject
- 【譯】Object與Map的異同及使用場景Object
- 《Density Map Guided Object Detection in Aerial Images》論文10問GUIIDEObject
- 在 JavaScript 中,什麼時候使用 Map 或勝過 ObjectJavaScriptObject
- 7.60 CONVERT
- PHP 每日一函式 — 字串函式 convert_uuencode () & convert_uudecode ()PHP函式字串
- Python convert string to unicode numberPythonUnicode
- [Linux] convert .img to .iso fileLinux
- DocTo convert doc(x) to pdf
- Convert型別轉換型別
- How to Convert a Class File to a Ja
- JSONObject應用Json字串和Object物件之間的轉換,Map封裝資料思路JSONObject字串物件封裝
- PIL.Image convert to numpy array
- 淺析Convert,Parse和TryParse
- matlab convert to PGM P2Matlab
- koa-convert原始碼分析原始碼
- 19c RAC Convert to OneNde
- 19c OneNode Convert to RAC
- C# convert ImageSource to byte arrayC#
- 538-Convert BST to Greater Tree
- Convert a normal Git repository to a bare oneORMGit
- Java動態獲取實現類 Class.forName(clazz).newInstance()和applicationContext.getBean, bean Map尋找方式,Java Map定義和初始化方法JavaAPPContextBean
- ES7 Object.keys,Object.values,Object.entriesObject
- ObjectObject
- 11gR2 RAC convert ONENODE
- 11gR2 OneNode Convert RAC
- 4.3.2.2.1 The SEED FILE_NAME_CONVERT Clause
- Convert a Physical Standby Database into a Snapshot Standby DatabaseDatabase
- LeetCode之Convert BST to Greater Tree(Kotlin)LeetCodeKotlin
- WPF SelectedItemCollection convert to IList and List, such as Datagrid SelectedItems
- How to Convert Class File to Java File Online?Java
- 介面返回[object,Object]解決方法Object
- MXRuntimeUtils,替代 [NSObject performSelector object object ]的工具ObjectperformSelector
- 108-Convert Sorted Array to Binary Search Tree