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
- 詳解object detection中的mAPObject
- 【譯】Object與Map的異同及使用場景Object
- Map<String, Object>轉換成uri請求串Object
- json字串與Object、List、Map的互轉工具類JSON字串Object
- 在Watir中進行物件對映(Object Map)的方法物件Object
- 在 JavaScript 中,什麼時候使用 Map 或勝過 ObjectJavaScriptObject
- Java 實現 Map 和 Object 互相轉換的幾種方法JavaObject
- (entity bean)動態賦值值物件-- Dynamic Create Value Object 模式 (轉)Bean賦值物件Object模式
- 解決Tensorflow ValueError: Failed to convert a NumPy array to a Tensor (Unsupported object type numpy.ndarray)ErrorAIObject
- 將Object物件轉換成Map 屬性名和值的形式Object物件
- 模型Bean:Model Bean模型Bean
- sql server convert用法SQLServer
- CONVERT DATABASE命令(三)Database
- CONVERT DATABASE命令(二)Database
- CONVERT DATABASE命令(一)Database
- db_file_name_convert和log_file_name_convert詳解
- Uncaught TypeError: Object [object Object] has no method 'xxx'ErrorObject
- Convert.ToInt32( null or "")Null
- json convert to stringJSON
- How to Convert Subversion Repo to GitGit
- Convert Array of Objects to Data TableObject
- RMAN CONVERT DATABASE 的限制Database
- SQL Server CONVERT() 函式SQLServer函式
- Spring中Bean及@Bean的理解SpringBean
- Java 中的map - The Map Interface.Java
- objectObject
- Spring Bean Scope 有狀態的Bean和無狀態的BeanSpringBean
- PHP 每日一函式 — 字串函式 convert_uuencode () & convert_uudecode ()PHP函式字串
- Hql總結 查詢結果動態組裝成List(map),List(bean),List(list),List(set)等格式(轉)Bean
- session bean 對 entity bean的訪問策略?SessionBean
- koa-convert原始碼分析原始碼
- java convert timestamp to date and timeJava
- Convert a Characteristic into a Key Figure (BEx)
- 函式: CONVERT_TO_LOCAL_CURRENCY函式
- SQL CONVERT的使用方法SQL
- 介面返回[object,Object]解決方法Object