本文目錄一覽:
java 中object對象與map可以相互強轉嗎?
Map不用強轉也是Objec的子類
而Object類型,強轉成Map,這就可能會造成錯誤。
就好比你閉上眼睛,遞給你一個麵包,你強轉成食物。沒問題,因為麵包本來就是食物的一種。
但是遞給你一個石頭,你試圖強制轉成食物,那麼就有問題了
java bean怎麼轉化為map 不用第三方
在做導入的時候,遇到了需要將map對象轉化 成javabean的問題,也就是說,不清楚javabean的內部欄位排列,只知道map的 key代表javabean的欄位名,value代表值。
那現在就需要用轉化工具了。是通用的哦!
首先來看 JavaBean 轉化成Map的方法:
[java] view plaincopy
[java]
/**
* 將一個 JavaBean 對象轉化為一個 Map
* @param bean 要轉化的JavaBean 對象
* @return 轉化出來的 Map 對象
* @throws IntrospectionException 如果分析類屬性失敗
* @throws IllegalAccessException 如果實例化 JavaBean 失敗
* @throws InvocationTargetException 如果調用屬性的 setter 方法失敗
*/
@SuppressWarnings({ “rawtypes”, “unchecked” })
public static Map convertBean(Object bean)
throws IntrospectionException, IllegalAccessException, InvocationTargetException {
Class type = bean.getClass();
Map returnMap = new HashMap();
BeanInfo beanInfo = Introspector.getBeanInfo(type);
PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
for (int i = 0; i propertyDescriptors.length; i++) {
PropertyDescriptor descriptor = propertyDescriptors[i];
String propertyName = descriptor.getName();
if (!propertyName.equals(“class”)) {
Method readMethod = descriptor.getReadMethod();
Object result = readMethod.invoke(bean, new Object[0]);
if (result != null) {
returnMap.put(propertyName, result);
} else {
returnMap.put(propertyName, “”);
}
}
}
return returnMap;
}
下面是將Map轉化成JavaBean對象的方法:
[java] view plaincopy
[java]
/**
* 將一個 Map 對象轉化為一個 JavaBean
* @param type 要轉化的類型
* @param map 包含屬性值的 map
* @return 轉化出來的 JavaBean 對象
* @throws IntrospectionException 如果分析類屬性失敗
* @throws IllegalAccessException 如果實例化 JavaBean 失敗
* @throws InstantiationException 如果實例化 JavaBean 失敗
* @throws InvocationTargetException 如果調用屬性的 setter 方法失敗
*/
@SuppressWarnings(“rawtypes”)
public static Object convertMap(Class type, Map map)
throws IntrospectionException, IllegalAccessException,
InstantiationException, InvocationTargetException {
BeanInfo beanInfo = Introspector.getBeanInfo(type); // 獲取類屬性
Object obj = type.newInstance(); // 創建 JavaBean 對象
// 給 JavaBean 對象的屬性賦值
PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
for (int i = 0; i propertyDescriptors.length; i++) {
PropertyDescriptor descriptor = propertyDescriptors[i];
String propertyName = descriptor.getName();
if (map.containsKey(propertyName)) {
// 下面一句可以 try 起來,這樣當一個屬性賦值失敗的時候就不會影響其他屬性賦值。
Object value = map.get(propertyName);
Object[] args = new Object[1];
args[0] = value;
descriptor.getWriteMethod().invoke(obj, args);
}
}
return obj;
JAVA中json字元串如何轉化為map對象,獲取數據?
我們需要先把json字元串轉化為net.sf.json.JSONObject對象,java中這樣就可以完成json字元串到Map的轉換了。
1.將數組轉換為JSON:String[] arr = {“asd”,”dfgd”,”asd”,”234″};JSONArray jsonarray = JSONArray.fromObject(arr);System.out.println(jsonarray);
2.對象轉換成JSON:UserInfo user = new UserInfo(1001,”張三”);JSONArray jsonArray = JSONArray.fromObject(user);System.out.println( jsonArray );
3.把Map轉換成json, 要使用jsonObject對象:MapString, Object map = new HashMapString, Object();map.put(“userId”, 1001);map.put(“userName”, “張三”);map.put(“userSex”, “男”);JSONObject jsonObject = JSONObject.fromObject(map);System.out.println(jsonObject);
4.把List轉換成JSON數據:ListUserInfo list = new ArrayListUserInfo();UserInfo user = new UserInfo(1001, “張三”);list.add(user);list.add(user);list.add(user);JSONArray jsonArray = JSONArray.fromObject(list);System.out.println(jsonArray);
5.
原創文章,作者:W9W7X,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/130786.html