`
wangdei
  • 浏览: 372870 次
社区版块
存档分类
最新评论

通过JOX轻松实现JavaBeans与XML的相互转换

阅读更多

不用复杂的代码,就可以让您的JavaBeans自己控制到XML文件的相互转化。本文展示了怎样通过JOX来实现从JavaBeans到XML文件的相互转换。

   为了灵活的满足Web应用和Web services需求的变化,Java和XML的轻便性和可扩展性使它们成为解决这一问题的理想选择。SAX (Simple API for XML), DOM (document.nbspObject Model), XSL (Extensible Stylesheet Language), XSLT (XSL Transformations), SOAP (Simple Object Access Protocol), and BML (Bean Markup Language)是XML领域内的相关技术。本文集合了Java和XML轻便和可扩展的优点,但又不需要开发人员了解上述的相关技术。
   在Java分布式应用中使用远程方法调用(RMI),而不是直接用底层的socket或其它网络链接代码。EJB技术也使开发人员从transaction,recovery, activation等底层机制中解放出来。同样,使用本文的JavaBean-XML映射组件,开发人员也不用直接处理与XML有关的APIs。

1.先定义javaBean

package  com.wutka.jox.test;

import  com.wutka.jox. * ;
import  java.util. * ;

public   class  TestBean  implements  java.io.Serializable
{
    
protected   int  foo;
    
protected  String bar;
    
protected  java.util.Date baz;
    
protected  Vector thingies;
    
protected  TestSubbean subbean;

    
public  TestBean()
    
{
        bar 
=   "" ;
        baz 
=   new  Date();
        thingies 
=   new  Vector();
    }


    
public   int  getFoo()  return  foo; }
    
public   void  setFoo( int  aFoo)  { foo  =  aFoo; }

    
public  String getBar()  return  bar; }
    
public   void  setBar(String aBar)  { bar  =  aBar; }

    
public  java.util.Date getBaz()  return  baz; }
    
public   void  setBaz(java.util.Date aBaz)  { baz  =  aBaz; }

    
public  TestSubbean getSub()  return  subbean; }
    
public   void  setSub(TestSubbean aSub)  { subbean  =  aSub; }

    
public  String[] getThingies()
    
{
        String[] retThingies 
=   new  String[thingies.size()];
        
if  (thingies.size()  >   0 ) thingies.copyInto(retThingies);

        
return  retThingies;
    }


    
public   void  setThingies(String[] newThingies)
    
{
        thingies 
=   new  Vector(newThingies.length);
        
for  ( int  i = 0 ; i  <  newThingies.length; i ++ )
        
{
            thingies.addElement(newThingies[i]);
        }

    }


    
public  String getThingies( int  i)
    
{
        
return  (String) thingies.elementAt(i);
    }


    
public   void  setThingies( int  i, String thingy)
    
{
        thingies.setElementAt(thingy, i);
    }


    
public  String toString()
    
{
        StringBuffer ret 
=   new  StringBuffer(
            
" foo= " + foo + " ;bar= " + bar + " ;baz= " + baz.toString() +
            
" ;thingies= " );
        
for  ( int  i = 0 ; i  <  thingies.size(); i ++ )
        
{
            
if  (i  >   0 ) ret.append( " , " );
            ret.append((String) thingies.elementAt(i));
        }


        ret.append(
" ;sub= " );
        ret.append(subbean.toString());

        
return  ret.toString();
    }

}


2.xml文件

 

<? xml version="1.0" ?>
< MarkTest >
< thingies > http://www.5a520.cn 小说520网 </ thingies >
< thingies > http://www.bt285.cn BT下载 </ thingies >
< thingies > http://www.bt285.cn/caj/ caj下载 </ thingies >
< thingies > http://www.bt285.cn/baolimotuo/ 暴力摩托 </ thingies >
< thingies > http://www.bt285.cn/btjinglin bt精灵 </ thingies >
< foo > 5 </ foo >
< baz > 6/25/00 12:46 AM </ baz >
< bar > This is the website value </ bar >
< sub >
< age > 1 </ age >
< name > wangdei </ name >
</ sub >
</ MarkTest >


下面的程序是把xml转为成javaBean

package  com.wutka.jox.test;

import  com.wutka.jox. * ;
import  java.io. * ;

public   class  TestDeser
{
    
public   static   void  main(String[] args)
    
{
        
try
        
{
            FileInputStream in 
=   new  FileInputStream( " bean.xml " );

            JOXBeanInputStream joxIn 
=   new  JOXBeanInputStream(in);

            TestBean testBean 
=  (TestBean) joxIn.readObject(
                TestBean.
class );

            System.out.println(testBean);
        }

        
catch  (Exception exc)
        
{
            exc.printStackTrace();
        }

    }

}

 

下面的程序是把javaBean转为成xml

package  com.wutka.jox.test;

import  com.wutka.jox. * ;
import  java.io. * ;

public   class  TestSer
{
    
public   static   void  main(String[] args)
    
{
        
try
        
{
            TestBean b 
=   new  TestBean();
            b.setFoo(
5 );
            b.setBar(
" This is the bar value " );
            b.setThingies(
new  String[]  {
                
" http://www.5a520.cn 小说520网 " " http://www.bt285.cn BT下载 " " http://www.bt285.cn/caj/ caj下载 " " http://www.bt285.cn/baolimotuo/ 暴力摩托 " " http://www.bt285.cn/btjinglin bt精灵 "  }
);
            TestSubbean sub 
=   new  TestSubbean();
            sub.setName(
" Mark " );
            sub.setAge(
35 );
            b.setSub(sub);

            FileOutputStream fileOut 
=   new  FileOutputStream( " bean.xml " );
            JOXBeanOutputStream joxOut 
=   new  JOXBeanOutputStream(fileOut);

            joxOut.writeObject(
" MarkTest " , b);

            joxOut.close();
分享到:
评论

相关推荐

    用JOX实现xml和javabean的相互转换

    它简化了XML与JavaBeans之间的交互,提高了开发效率,使得处理XML变得更加简单。通过定义符合JavaBeans规范的类,开发者可以轻松地将Java对象序列化为XML,反之亦然,这在分布式系统、Web服务和数据持久化等场景下...

    JOX实现XML和JavaBean相互转化

    XML和JavaBean相互转化是一个非常有用的工作,用来读写xml的组件很多,比如dom4j, sax, JDom,Digester等,但是很多组件用起来很麻烦,今天给大家推荐一个超级简单的组件JOX, JOX是一套用户XML document和Java ...

    jox.jar包 是操作xml文件与javaBean的相互转化

    jox是一组java类库 实现javaBean与xml相互转化 更加容易

    Jox bean与xml互相转换需要的jar包

    汇总了jox所有依赖的包,可以支持xml与javabean之间相互转换,我也是在逐步调试过程中,把这些包汇总上来的,jox的站点已经停止访问了,放在这里方便大家下载。生成的xml可以格式化还有中文解决等。...

    javabean2xml实例与jox-1.17b3.jar

    总的来说,这个实例教程或库主要面向Java开发者,帮助他们理解和使用JOX库来实现JavaBean对象与XML之间的相互转换。通过JOX,开发者可以避免手动编写XML序列化和反序列化的代码,从而提高开发效率,减少错误,并简化...

    JavaBean与xml转换所依赖jar包---Jox

    在开发过程中JavaBean与xml之间相互转换,jox给我们提供了很好的方便,但是jox官网已关闭,所以在这里方便大家下载使用;此资源中包含了jox所有依赖的jar包;解决xml中文格式化问题,JOXBeanOutputStream joxOut = ...

    JOX(解决了日期格式转化和导出XML中文乱码问题)

    核心:解决了日期格式转化和导出XML中文乱码问题 介绍:有时候,我们需要把javabean的内容保存到文件,或者通过网络传递。这时候,把javabean转化为xml是一个常用的方式。但java本身提供的操作xml的方式有些麻烦,而...

    JOX 处理xml文档.doc

    4. **性能与效率**:相比于其他重量级的工具如JIBX(Java Inbound/Outbound Binder)和Apache的Web服务工具,JOX的轻量级设计使其在处理简单的XML与JavaBean转换时更加高效。如果你没有Web服务的需求,或者不需处理...

    jox 真正所有包(包含测试类)

    描述中的"javabean 与 xml互相转化"指出jox库的核心功能之一是实现JavaBean对象与XML之间的转换。JavaBean是一种遵循特定规范的Java类,通常用于数据封装和传递。XML(Extensible Markup Language)则是一种用于存储...

    xml与javabean的转换

    总结来说,Jox库提供了一个方便的工具`BeanXmlMapping`,用于XML与JavaBean之间的相互转换,这对于在Java应用中处理结构化数据非常有用。通过熟练掌握其用法,开发者可以更加高效地在对象模型和XML文档之间进行数据...

    jox-1.17b3.jar

    通过JOX来实现从JavaBeans到XML文件的相互转换。 为了灵活的满足Web应用和Web services需求的变化,Java和XML的轻便性和可扩展性使它们成为解决这一问题的理想选择。SAX (Simple API for XML), DOM (document....

    javabean和xml互转详细文档+例子

    jox库是一个轻量级的Java库,专注于JavaBean与XML之间的转换。它使用JDOM作为XML处理的底层实现,提供了简单易用的API来处理JavaBean到XML以及XML到JavaBean的转换。jox库的优点在于其简洁的API和对JavaBean属性的...

    jox-1.17b3

    jox-1.17b3,好用的XML转换工具包,dtdparser121.jar;jaxp.jar;jox-1.17b3.jar;junit_3.8.2.jar;parser.jar;xercesimpl.jar;xml-apis.jar

    jox-1.16.jar

    jox-1.16.jar jox-1.16.jar

    jox的简单例子

    找了好久,才配出了这个例子,这个还是一个国外网站的,不容易,例子写的很简单,容易理解,千万别错过,

    jox1.6源码

    《深入解析jox1.6源码:洞察其设计与实现》 jox1.6源码是一款在编程社区中颇受欢迎的开源项目,对于学习和理解特定技术、提升编程技能具有很高的价值。本文将围绕jox1.6源码进行深入探讨,旨在帮助开发者们了解其...

    微信小程序组件,持续更新中jox-wxapp-master.zip

    微信小程序组件,持续更新中jox-wxapp-master.zip

    简易三相电源调压电路

    调压电路的核心是采用三台单相小容量降压变压器,它们通过特定的连接方式实现自耦升、降压功能。当变压器的初、次级线圈正极性串联时,形成降压变压器,降低了电源电压。相反,负极性串联时则构成升压变压器,提升了...

    ADS各种教程总汇下载地址.txt

    链接:https://pan.baidu.com/s/1YJljQQULK0vfCm66EgQZ4A 密码:6jox ADS分享总汇1

Global site tag (gtag.js) - Google Analytics