betwixt互相转换JavaBean和XML(含代码和jar包).rar

  • o7_113726
    了解作者
  • 1.1MB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-06-14 22:34
    上传日期
本资料用于JavaBean和XML之间相互转换,所用到的关于betwixt的包都在内。方法写在textXml中,由于默认的方法较为简单,且有局限性,所以本资料主要侧重从自定义的配置文件中转换xml或者生成javaBean.有兴趣的朋友可以注意下,配置文件的名称,这是我花了很长时间才发现的……
betwixt互相转换JavaBean和XML(含代码和jar包).rar
  • Father.java
    485B
  • Child.java
    629B
  • lib
  • commons-beanutils-core.jar
    164.8KB
  • commons-collections-3.2.jar
    557.9KB
  • commons-beanutils.jar
    184.2KB
  • commons-beanutils-bean-collections.jar
    25KB
  • commons-digester-1.8.jar
    140.2KB
  • commons-logging-1.0.4.jar
    37.1KB
  • commons-betwixt-0.8.jar
    236.5KB
  • TestXML.java
    4.5KB
  • children.betwixt
    395B
内容介绍
package betwixt; import java.beans.IntrospectionException; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; import java.io.StringWriter; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; import org.apache.commons.betwixt.io.BeanReader; import org.apache.commons.betwixt.io.BeanWriter; import org.xml.sax.InputSource; import org.xml.sax.SAXException; public class TestXML { public static void main(String args[]) throws Exception { Child children = new Child(); Map<String,String> scoreMap = new HashMap<String,String>(); scoreMap.put("English", "90"); scoreMap.put("Math", "88"); children.setId(1); children.setChildrenName("zhaolixing"); children.setScoreMap(scoreMap); Child children2 = new Child(); Map<String,String> scoreMap2 = new HashMap<String,String>(); scoreMap2.put("English", "100"); scoreMap2.put("Math", "80"); children2.setId(1); children2.setChildrenName("zhaoliyan"); children2.setScoreMap(scoreMap2); Father father = new Father(); father.setFathername("zbj"); ArrayList<Child> childrens = new ArrayList<Child>(); childrens.add(children); childrens.add(children2); father.setChildren(childrens); Child child1 = new Child(); System.out.println(ConvertBean2StrFromConfig(children, "child", "/betwixt/children.betwixt")); child1 = (Child) getObjFromXml(ConvertBean2StrFromConfig(children, "child", "/betwixt/children.betwixt"), child1, "/betwixt/children.betwixt"); // child1= (Child) // getObjFromXml(ConvertBean2StrFromConfig(children,"child"),child1); System.out.println(child1.getChildrenName()); Father fa2 = new Father(); //System.out.println(ConvertBean2Str(father, "father")); System.out.println(ConvertBean2StrFromConfig(father,"father","/betwixt/Father1.betwixt")); fa2 = (Father)getObjFromXml(ConvertBean2StrFromConfig(father,"father","/betwixt/Father1.betwixt"),fa2,"/betwixt/Father1.betwixt"); System.out.println(fa2.getFathername()); } /** * @author zbj * desc:此方法是将一个JavaBean转成xml格式字符串, * 有两种途径:一是使用默的方法,一种是根据自己定义的格式去生成xml.下面分别用这两种方法转换Child和 * Father这两个JavaBean * @throws IntrospectionException * @throws SAXException * @throws IOException */ public static String ConvertBean2Str(Object obj,String element) throws IOException, SAXException, IntrospectionException{ StringWriter outputWriter = new StringWriter(); outputWriter.write("<?xml version='1.0' encoding=\"UTF-8\"?>\n"); BeanWriter beanWriter = new BeanWriter(outputWriter); beanWriter.getBindingConfiguration().setMapIDs(false); beanWriter.enablePrettyPrint(); // beanWriter.write(element, obj); beanWriter.write(obj); //System.out.println(outputWriter.toString()); String str = outputWriter.toString(); beanWriter.close(); return str; } public static String ConvertBean2StrFromConfig(Object obj,String element,String path) throws IOException, SAXException, IntrospectionException{ StringWriter outputWriter = new StringWriter(); outputWriter.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"); BeanWriter beanWriter = new BeanWriter(outputWriter); beanWriter.getBindingConfiguration().setMapIDs(false); beanWriter.enablePrettyPrint(); InputStream s = obj.getClass().getResourceAsStream(path); InputSource config = new InputSource(s); beanWriter.getXMLIntrospector().register(config); beanWriter.write(obj); String strTemp = outputWriter.toString(); outputWriter.close(); //strTemp = replaceStr(strTemp); return strTemp; } public static Object getObjFromXml(String strXml,Object obj,String path) throws Exception{ if(strXml == null || strXml.compareTo("") == 0){ return null; } BeanReader beanReader = new BeanReader(); beanReader.getXMLIntrospector().getConfiguration() .setAttributesForPrimitives(false); beanReader.getBindingConfiguration().setMapIDs(false); InputStream s = obj.getClass().getResourceAsStream(path); InputSource config = new InputSource(s); beanReader.getXMLIntrospector().register(config); beanReader.registerBeanClass(obj.getClass()); InputStream xml = new ByteArrayInputStream(strXml.getBytes("UTF-8")); obj = (Object) beanReader.parse(xml); return obj; } }
评论
    相关推荐
    • GaussDB_100_1.0.1-DATABASE-REDHAT-64bit.tar.gz
      guassdb100在redhat上安装包,单机部署的包,安装步骤请看我的文中介绍,经过大量实验搭建总结出来的文档
    • 卷积神经网络
      这是卷积神经网络的一个实际用例,已经调试好了,能够在matlab上成功运行,适合从事卷积神经网络(CNN)研究的人员学习使用。
    • SIM800C_MQTT.rar
      使用SIM800C模块,使用MQTT协议,连接中国移动onenet平台,能实现数据的订阅、发布、存储等
    • 微电网PSO优化算法
      微电网的粒子群优化调度算法,里面包括相关文献参考和电价数据,算法的过程解释的很清楚,是我学算法时候用到的资源。
    • android从bootloader到launcher启动流程整理
      讲述android 开机流程 从boot rom---bootloader---init--zygote---systemserver---ams 并附上自己整理的每个流程的流程图 ,清晰熟悉android 启动流程
    • Aerosim Blockset
      The AeroSim aeronautical simulation blockset provides a complete set of tools for the rapid development of nonlinear 6-degree of freedom aircraft dynamic models. In addition to the basic aircraft dynamics blocks, the library also includes complete aircraft models which can be customized through parameter files.
    • 分数阶混沌系统:分数阶混沌系统的数值解。-matlab开发
      该工具箱包含可用于模拟一些著名的分数阶混沌系统的函数,例如: - 陈的系统, - Arneodo的系统, - Genesio-Tesi 的系统, - 洛伦兹系统, - 牛顿-莱普尼克系统, - 罗斯勒的系统, - Lotka-Volterra系统, - 达芬的系统, - 范德波尔的振荡器, -伏打的系统- 陆氏系统, - 刘的系统, - Chua的系统, - 金融系统, - 3 细胞 CNN。 这些函数以数值方式计算描述混沌系统的分数阶非线性微分方程的解。 每个函数返回总模拟时间的状态轨迹(吸引器)。 更多详情请看书: Ivo Petras,分数阶非线性系统:建模、分析和仿真,Springer,系列:非线性物理科学,2011,ISBN 978-3-642-18100-9。 http://www.springer.com/engineering/control/book/978-3-
    • matlabpam代码-dsp-library:用于光通信的MATLABDSP函数库
      matlab pam代码 DSP库 该项目包含几种不同的功能,可将DSP算法应用于光通信。 这些功能适用于相干和非相干(PAM,DMT)光通信。 大多数功能是相互独立的。 因此,该代码中的功能可以轻松使用,并与其他DSP功能结合使用。 用法 功能列表以及简短说明在文件中。 输入和输出参数的描述在每个函数的标题中。 讯号 通常,输入(和输出)信号在第一维度上具有时间(例如,列向量),而第二维度用于一次管理多个信号(例如,不同的极化,不同的参数等)。 之所以选择这种约定,是因为MATLAB通过将列保留在内存的连续部分中来存储矩阵,因此,这种约定比其他方法(行向量)要快。 参数 大多数功能使用参数结构作为输入参数。 函数中使用的参数的描述通常在标头中,而coherent-dsp函数的默认参数在文件中。 参考 执照 此代码在下发布。
    • 有关多目标跟踪的PHD滤波的一些资料
      一些关于多目标跟踪的新的文献,主要是有关概率假设密度(PHD)的
    • stm32-uart-dma:STM32串口DMA模式发送&接收实现,高速串口通信(1.5Mbps)不丢数据
      STM32高速串口通信DMA收发实现 测试平台 平台 晶振 BSP库 串口 STM32F030C8T6 12MHz 标准库 UART1、UART2 STM32F103ZET6 8MHz 标准库 UART1、UART2 ... 实现功能 收/发环形缓冲区 不定长度接收处理 高速(1.5Mbps)通信不丢数据 关键实现 DMA发送模式 线程循环查询发送环形缓冲区数据,然后启动MDA传输 DMA传输完成中断,连续发送 定时器中断周期发送 DMA接收模式 DMA缓存半满中断(如CPU硬件支持,可使用DMA双缓存机制) DMA缓存传输完成中断 串口空闲中断实现 其他 更详细的描述过程参考文章