使用Castor工具完成Java对象与XML之间的相互转换

它是怎么样转换的?和前面不同的是castor可以用一个mapping.xml文件来描述转换后的Jav
【菜科解读】
这里将介绍Castor来完成Java对象到xml的相互转换。
它是怎么样转换的?和前面不同的是castor可以用一个mapping.xml文件来描述转换后的Java对象的xml基本形态,类似于xStream的annotation,这点还是非常不错的。
下面我们就来看看Castor是怎么样完成Java对象到XML之间的相互转换吧。
一、 准备工作
1、 官方资源
本示例会运用到如下依赖包(jar包):
资源及jar包下载:http://www.castor.org/download.html
junit jar下载地址:
https://github.com/KentBeck/junit/downloads
关于官方提供的mapping配置相关示例、文档:
http://www.castor.org/xml-mapping.html
ibm提供的castor方面的文档资料:
http://www.google.com.hk/search?hl=zh-CN&newwindow=1&safe=strict&client=aff-cs-360se&hs=Gon&biw=1349&bih=603&q=castor+site%3Awww.ibm.com%2Fdeveloperworks%2Fcn%2Fxml%2F&aq=f&aqi=&aql=&oq=
2、 程序测试运行代码
package com.hoo.test;import java.io.IOException;import java.io.StringReader;import java.io.StringWriter;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import org.exolab.castor.mapping.Mapping;import org.exolab.castor.mapping.MappingException;import org.exolab.castor.xml.MarshalException;import org.exolab.castor.xml.Marshaller;import org.exolab.castor.xml.Unmarshaller;import org.exolab.castor.xml.ValidationException;import org.junit.After;import org.junit.Before;import org.junit.Test;import com.hoo.entity.Account;import com.hoo.entity.AccountArray;import com.hoo.entity.Birthday;import com.hoo.entity.ListBean;import com.hoo.entity.MapBean;/** * function:Castor完成Java对象到XML的相互转换 * 依赖jar: castor-1.3.jar * castor-1.3-core.jar * junit-4.8.2.jar * log4j-1.2.16.jar * commons-logging.jar * @author hoojo * @createDate 2011-4-21 下午07:57:26 * @file CastorTest.java * @package com.hoo.test * @project WebHttpUtils * @blog http://blog.csdn.net/IBM_hoojo * @email hoojo_@126.com * @version 1.0 */public class CastorTest { private Account bean = null; private Mapping mapping = new Mapping(); private StringWriter writer = null; private StringReader reader = null; @Before public void init() { bean = new Account(); bean.setAddress("北京"); bean.setEmail("email"); bean.setId(1); bean.setName("jack"); Birthday day = new Birthday(); day.setBirthday("2010-11-22"); bean.setBirthday(day); try { /** * 加载mapping.xml,此文件是对需要转换的Java对象的配置描述, * 即:转换后的Java对象的xml内容的转换规则 */ mapping.loadMapping(System.getProperty("user.dir") + "\\src\\mapping.xml"); } catch (IOException e) { e.printStackTrace(); } catch (MappingException e) { e.printStackTrace(); } } @After public void destory() { bean = null; mapping = null; try { if (writer != null) { writer.flush(); writer.close(); } if (reader != null) { reader.close(); } } catch (IOException e) { e.printStackTrace(); } System.gc(); } public void fail(Object o) { System.out.println(o); } public void failRed(Object o) { System.err.println(o); }}
Mapping对象可以完成Java对象到XML的编组和解组,它需要先设定一个mapping.xml,通过xml对JavaObject的描述。
来完成JavaObject的编组、解组工作。
3、 看看即将被转换的JavaEntity代码
Account
package com.hoo.entity;public class Account { private int id; private String name; private String email; private String address; private Birthday birthday; //setter、getter @Override public String toString() { return this.id + "#" + this.name + "#" + this.email + "#" + this.address + "#" + this.birthday; }}
Birthday
package com.hoo.entity;public class Birthday { private String birthday; public Birthday(String birthday) { super(); this.birthday = birthday; } //getter、setter public Birthday() {} @Override public String toString() { return this.birthday; }}
AccountArray
package com.hoo.entity;public class AccountArray { private Account[] accounts; private int size; public int getSize() { size = accounts.length; return size; } public void setSize(int size) { this.size = size; } public Account[] getAccounts() { return accounts; } public void setAccounts(Account[] accounts) { this.accounts = accounts; }}
ListBean
package com.hoo.entity;import java.util.List;public class ListBean { private String name; private List list; //setter、getter}
MapBean
package com.hoo.entity;import java.util.Map;public class MapBean { private Map map; public Map getMap() { return map; } public void setMap(Map map) { this.map = map; }}
二、 编组JavaObject到XML
1、 将JavaBean编组,转换成XML
/** * function:将Javabean编组,转换成XML * @author hoojo * @createDate 2011-4-22 下午12:08:48 */@Testpublic void writeBean2XML() { writer = new StringWriter(); try { //编组 Marshaller.marshal(bean, writer); fail(writer); } catch (MarshalException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); }}
代码很简单,通过Marshaller的marshal方法来完成Java对象到XML的编组(序列化、转换)工作。
运行后的结果如下:
?xml version="1.0" encoding="UTF-8"?> 下一篇:
如何查询个人参保信息、社保缴费记录、使用记录
社保的作用为:1.经济保险:社保中的各项保险体系,如养老保险、医疗保险、失业保险等,能够为参保人在遭遇风险时提供经济上的支持。
2.社会保险:社保体系还体现了对公民的社会责任,通过为公民提供基本的生活和福利,促进社会公平和稳定。
缴纳社保是公民履行社会责任的体现,也是享受社会保险体系的前提。
3.储蓄和投资:社保体系中的公积金体系,为公民提供了一种储蓄和投资的方式。
通过缴纳公积金,公民可以在购房、租房等方面获得资金支持,同时也可以通过公积金的增值收益获得一定的投资回报。
如何查询个人参保信息、社保缴费记录、使用记录?据新社通小编小编了解到,查社保个人账户查询12333怎么查?12333社保查询个人账户步骤来了如下:使用12333网站查询方法:访问12333网站。
点击“个人登录”,输入个人账号和密码后登录。
进入个人账户页面,选择“余额查询”选项。
输入个人身份证号码和社保号码,点击“查询”按钮,即可查看账户余额、缴费记录等详细信息。
社保缴费情况查询有以下几个方法:1.12333电话查询拨打人社局客服热线12333,根据语音提示选择相应的服务,如“社会保险”或“养老金查询”,然后输入身份证号码、社保卡号或社保手册编号等信息,进行密码设置和身份验证后,即可查询个人账户余额、缴费记录等信息。
2.网上查询方法网站查询:登录所在地区的人社局或社保局网站,在个人社保账户或相关查询页面中输入个人身份证号码和社保号码(或密码),登录后即可查看个人社保缴费记录中的社保缴费明细。
访问12333网站:访问12333网站,点击“个人登录”,输入个人账号和密码后登录。
进入个人账户页面后,选择“余额查询”选项,输入个人身份证号码和社保号码,点击“查询”按钮即可查看账户余额、缴费记录等详细信息。
3.使用第三方平台:支付宝、微信等第三方平台也提供个人社保缴费查询功能。
通常在城市服务页面中找到社保选项,登录个人账户后即可查询。
4.现场查询携带身份证和社保卡前往当地的社保服务网点或社保服务中心,通过窗口咨询或自助查询机进行查询。
这种方式适合需要详细咨询或打印纸质证明的人群。
注意事项在查询前,请确保提供的个人信息真实准确,以便能够顺利查询到个人的社保缴费记录明细。
在使用第三方平台或手机APP进行查询时,请注意保护个人信息和账户安全,避免泄露个人隐私。
如果在查询过程中遇到任何问题或疑问,可以拨打12333客服热线进行咨询或寻求帮助。
通过以上方法,您可以方便快捷地查询到自己的社保缴费记录明细。
收藏!社保卡里的个账的钱如何给家人使用
其中养老保险、医疗保险和失业保险,这三种险是由企业和个人共同缴纳的保费,工伤保险和生育保险完全是由企业承担的。
社保卡怎么共享给家人?家庭成员共享如何绑定?随新社通小编来了解一下:社保卡里的职工个人账户如何共济给家人?社保卡里的余额给家人使用,需要怎么绑定呢,主要可以通过以下几种方式实现:一、电子社保卡亲情服务此外,还可以通过电子社保卡的亲情服务功能,为家人提供便捷的电子社保卡签发和应用服务。
具体步骤如下:打开电子社保卡首页,点击右上角“我的”-“亲情服务”。
点击“添加”,验证电子社保卡密码后,阅读并同意添加亲情账户告知书。
输入要开通人的姓名、社保号码、亲情关系,点击“添加亲情账户”并上传身份凭证(小于16岁需同时上传人脸正面照)。
亲情服务绑定对象进行人脸识别操作,认证通过后则开通亲情服务成功。
通过电子社保卡亲情服务,可以帮家人查询个人社保权益单、进行社保待遇资格认证、办理社保网上转移申请等,同时也可以使用社保卡里的余额。
二、社保卡绑定家人通过社保卡的家庭共享功能,可以将社保卡的余额绑定给家人使用。
具体操作步骤如下:社会保险服务个人网页自助办理:登陆个人网页,进入社保业务办理-医疗业务办理-个人账户家庭共享-新增绑定,输入亲属社保电脑号、亲属身份证号及亲属关系,提交保存,即完成绑定。
到社保分局医疗保险窗口申请办理:在社保部门医保现金报销窗口刷卡绑定,刷被使用人的社保卡,并录入使用人的社保卡号。
在定点医院医疗保险办公室办理:在医院医保办,通过“网上医院”刷卡绑定,刷被使用人的卡,并录入使用人的社保卡号。
完成绑定后,家人在就医时就可以使用社保卡里的余额进行支付了。
需要注意的是,社保卡里的余额属于个人所有,给家人使用时需确保符合要求,不得进行违法违规操作。
另外,不同地区的社保卡使用可能有所不同,具体操作方法还需根据当地而定。
目前首批开通个人账户跨省家庭共济的地区(统筹区)有哪些?1、安徽省(淮南市)2、江苏省(苏州市)3、湖北省(襄阳市、黄冈市、咸宁市、随州市、恩施土家族苗族自治州、潜江市)4、河北省(石家庄市、唐山市、秦皇岛市、邯郸市、邢台市、保定市、张家口市、承德市、沧州市、廊坊市、衡水市、辛集市、定州市、雄安新区、省本级)5、河南省(郑州市、信阳市)6、山东省(德州市)7、甘肃省(临夏回族自治州)8、四川省(省本级、成都市、广安市)9、重庆市(云阳县)共31个地区(统筹区)已开通个人账户跨省共济使用。