如何将ASObject转换为JAVA对象
来源:互联网 发布:廊坊php待遇 编辑:程序博客网 时间:2024/06/05 09:34
我试过不建立As对象也可以实现java对象的转换
flex相关jar包中java对象转换到AS对象中间有个ASObject(一个java类继承MAP)他把java类的属性读出放到其Map映射返回到flex前台就是ASObject了
就是说你new 一个ASOBject 按照MAP设置好属性,值 到前台就是一个ASObject对象可以直接用该对象取值
总结就是:
flex对象传到java(如果没经过绑定强转)都看成ASObject 其为一个Map型集合可以通过类属性充当Key从中取值
flex中集合传来都看成flex.messaging.io.ArrayCollection该集合实现List接口传递给flex flex可以直接识别
flexObjec <--> ASObject(flex.messaging.io.amf.ASObject) <---> javaObject
flexArray <--> ArrayCollection(flex.messaging.io.ArrayCollection) <---> javaArray(List)
例:我查询数据库返回ASObject到flex
import flex.messaging.io.ArrayCollection;
public ArrayCollection getSqlData(String sql)
{
ArrayCollection asList = new ArrayCollection(jdbc.getSqlData(sql));
return asList;
}
这是我自己写的一个类尝试转换的 时间久远那些方法测试过没我也忘了(基于Spring相关类)
flex相关jar包中java对象转换到AS对象中间有个ASObject(一个java类继承MAP)他把java类的属性读出放到其Map映射返回到flex前台就是ASObject了
就是说你new 一个ASOBject 按照MAP设置好属性,值 到前台就是一个ASObject对象可以直接用该对象取值
总结就是:
flex对象传到java(如果没经过绑定强转)都看成ASObject 其为一个Map型集合可以通过类属性充当Key从中取值
flex中集合传来都看成flex.messaging.io.ArrayCollection该集合实现List接口传递给flex flex可以直接识别
flexObjec <--> ASObject(flex.messaging.io.amf.ASObject) <---> javaObject
flexArray <--> ArrayCollection(flex.messaging.io.ArrayCollection) <---> javaArray(List)
例:我查询数据库返回ASObject到flex
import flex.messaging.io.ArrayCollection;
public ArrayCollection getSqlData(String sql)
{
ArrayCollection asList = new ArrayCollection(jdbc.getSqlData(sql));
return asList;
}
这是我自己写的一个类尝试转换的 时间久远那些方法测试过没我也忘了(基于Spring相关类)
- /**
- * flex类未指定对应java对象
- *
- * 将flex提交于java后台的数据对应到java对象中
- * @param fromObj
- * @param toObj
- */
- public static void flexObjectToVo(ASObject fromObj,Object toObj)
- {
- Assert.notNull(fromObj, "Flex对象为空");
- Assert.notNull(toObj, "java对象为空");
- PropertyDescriptor targetPds[] = BeanUtils.getPropertyDescriptors(toObj.getClass()); //遍历获取java对象全部属性
- for (Object obj : targetPds) //循环遍历属性
- {
- PropertyDescriptor targetPd = (PropertyDescriptor)obj;
- if(targetPd.getWriteMethod() == null) //获取该属性的set方法如果无则继续下次循环
- continue;
- //有set方法的属性 vo的正常属性
- try
- {
- Object value = fromObj.get(targetPd.getName()); //flex提交的值
- Method writeMethod = targetPd.getWriteMethod();
- if(!Modifier.isPublic(writeMethod.getDeclaringClass().getModifiers()))
- writeMethod.setAccessible(true); //设置到Vo
- writeMethod.invoke(toObj, new Object[] {value});
- }
- catch(Throwable e)
- {
- System.out.println("从flex拷值到java对象错误"+e.getMessage()+"\n 当前造成错误的属性"+targetPd.getName());
- continue; //当前属性为空 继续赋值
- }
- }
- }
- /**
- * flex类未指定对应java对象
- *
- * 将flex提交于java后台的数据对应到java对象中
- * @param fromObj
- * @param toObj
- */
- public static Object getflexObjectToVo(ASObject fromObj,Object toObj)
- {
- Assert.notNull(fromObj, "Flex对象为空");
- Assert.notNull(toObj, "java对象为空");
- PropertyDescriptor targetPds[] = BeanUtils.getPropertyDescriptors(toObj.getClass()); //遍历获取java对象全部属性
- for (Object obj : targetPds) //循环遍历属性
- {
- PropertyDescriptor targetPd = (PropertyDescriptor)obj;
- if(targetPd.getWriteMethod() == null) //获取该属性的set方法如果无则继续下次循环
- continue;
- //有set方法的属性 vo的正常属性
- try
- {
- Object value = fromObj.get(targetPd.getName()); //flex提交的值
- Method writeMethod = targetPd.getWriteMethod();
- if(!Modifier.isPublic(writeMethod.getDeclaringClass().getModifiers()))
- writeMethod.setAccessible(true); //设置到Vo
- writeMethod.invoke(toObj, new Object[] {value});
- }
- catch(Throwable e)
- {
- System.out.println("从flex拷值到java对象错误"+e.getMessage()+"\n 当前造成错误的属性"+targetPd.getName());
- continue; //当前属性为空 继续赋值
- }
- }
- return toObj;
- }
- /**
- * flex类指定对应java对象
- *
- * 将flex提交于java后台的数据对应到java对象中
- * @param fromObj
- * @param toObj
- */
- public static Object flexObjectToVo(ASObject fromObj)
- {
- Object toObj = null;
- try
- {
- toObj = Class.forName(fromObj.getType()).newInstance();
- }catch (Exception e)
- {
- System.out.println("从flex指定类型中获取java类失败"+e.getMessage());
- return null;
- }
- Assert.notNull(fromObj, "Flex对象为空");
- Assert.notNull(toObj, "java对象为空");
- PropertyDescriptor targetPds[] = BeanUtils.getPropertyDescriptors(toObj.getClass()); //遍历获取java对象全部属性
- for (Object obj : targetPds) //循环遍历属性
- {
- PropertyDescriptor targetPd = (PropertyDescriptor)obj;
- if(targetPd.getWriteMethod() == null) //获取该属性的set方法如果无则继续下次循环
- continue;
- //有set方法的属性 vo的正常属性
- try
- {
- Object value = fromObj.get(targetPd.getName()); //flex提交的值
- Method writeMethod = targetPd.getWriteMethod();
- if(!Modifier.isPublic(writeMethod.getDeclaringClass().getModifiers()))
- writeMethod.setAccessible(true); //设置到Vo
- writeMethod.invoke(toObj, new Object[] {value});
- }
- catch(Throwable e)
- {
- System.out.println("从flex拷值到java对象错误"+e.getMessage()+"\n 当前造成错误的属性"+targetPd.getName());
- continue; //当前属性为空 继续赋值
- }
- }
- return toObj;
- }
- /**
- * 将flex传递与java的集合转换成toObj形式并以集合返回
- * @param ASOList
- * @param toObj
- * @return
- */
- public static List flexObjectToVo(List ASOList,Object toObj)
- {
- Assert.notNull(toObj, "java对象为空");
- List<Object> returnList = new LinkedList<Object>();
- for ( int i = 0 ; i < ASOList.size(); i++)
- {
- ASObject asObj = (ASObject)ASOList.get(i);
- returnList.add(getflexObjectToVo(asObj,toObj));
- }
- return returnList;
- }
- /**
- * 将结果集放到as对象
- * @param asObject
- * @param rs
- */
- public static void getChartFlexList(ASObject asObject,ResultSet rs)
- {
- try {
- int ci = rs.getMetaData().getColumnCount();
- for (int i = 1 ; i <=ci ; i++)
- {
- asObject.put(rs.getMetaData().getColumnName(i), rs.getObject(i));
- }
- } catch (SQLException e) {
- System.out.println("sql 异常"+e.getMessage());
- } //总列数
- }
- /**
- * 将结果集放到as集合中 这样实现结果集有序及重复
- * @param asObject
- * @param rs
- */
- public static void getChartFlexList(ArrayCollection asList,ResultSet rs)
- {
- try {
- int ci = rs.getMetaData().getColumnCount();
- for (int i = 1 ; i <=ci ; i++)
- {
- ASObject asObject = new ASObject();
- asObject.put(rs.getMetaData().getColumnName(i), rs.getObject(i));
- asList.add(asObject);
- }
- } catch (SQLException e) {
- System.out.println("sql 异常"+e.getMessage());
- } //总列数
- }
- 如何将ASObject转换为JAVA对象
- ASObject转换为Java对象
- 如何通过Java代码将JSONObject转换为对象
- 如何将bean转换为json对象
- js如何将字符串转换为对象
- 将java对象转换为Json
- 将json转换为java集合对象
- java中 将对象转换为json
- Gson:将Java对象转换为JsonObject
- 将map转换为java对象
- 如何将Java程序转换为Webservice
- 如何将Java程序转换为Webservice
- Java 如何将Array转换为Stream
- java使用反射将json对象转换为java对象
- JSON(2):如何将一个java对象转换为一个符合json语法的字符串
- 封装将json对象转换为java集合对象
- 使用 jackson ObjectMapper将java对象转换为json对象
- 如何将json文本转换为JavaScript对象
- uestudio烈火版下载地址
- 思科路由器RIP协议v1实验
- Android中使用WebView, WebChromeClient和WebViewClient加载网页
- 安装KDevelop开发c/c++程序
- 利用栈实现整型多进制转换
- 如何将ASObject转换为JAVA对象
- 获取 + 查看 Android 源码的 方法
- 读写锁
- POJ 1003
- leach 分析4
- sql 创建多表删除的存储过程
- 一个oracle监听以及alert日志的按月归档脚本
- URL 传值 加密 解密 算法
- 别墅装修设计_简洁风的别墅设计特性