JAXB解析XML
来源:互联网 发布:德州扑克 人工智能 编辑:程序博客网 时间:2024/05/16 14:09
尝试过dom4j和XStream,二者对于XML转java bean都比较无力。最终JAXB解烦忧。
主要问题出现在构建pojo类上:
*出现在XML里的标签,都应该是pojo中的字段名。
*List都以数组形式表达,数组的字段名变成每一个元素的标签名。
<ALL><PNRNO /><PASSENGERLIST> <PASSENGER> <NAME>1</NAME> </PASSENGER> <PASSENGER> <NAME>2</NAME> </PASSENGER> <PASSENGER> <NAME>3</NAME> </PASSENGER></PASSENGERLIST></ALL>
应表示为
@XmlRootElement(name = "ALL")public class ALL { @XmlElement public PassengerList PASSENGERLIST; @XmlRootElement public static class PassengerList { @XmlElement Passenger[] PASSENGER; }}
注解使用参考:
http://blog.csdn.net/chen7788/article/details/7384315
http://blog.csdn.net/czplplp_900725/article/details/7888896
JAXB实现XML和java bean的互转:
/** * 将Java对象序列化为XML字符串 * * @param pojo 待序列化的Java对象 * @throws JAXBException * @return */public static String toXml(Object pojo) throws JAXBException {JAXBContext jaxbContext = JAXBContext.newInstance(pojo.getClass());Marshaller marshaller = jaxbContext.createMarshaller();marshaller.setProperty(Marshaller.JAXB_ENCODING, "UTF-8"); //编码格式marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); //是否格式化生成的XMLmarshaller.setProperty(Marshaller.JAXB_FRAGMENT, false); // 是否省略XML头声明信息StringWriter stringWriter = new StringWriter();marshaller.marshal(pojo, stringWriter);return stringWriter.toString();}
/** * 将XML字符串反序列化为Java对象 * * @param xmlStr 待反序列化的XML字符串 * @param pojoClass 需要反序列化的类型 * @throws JAXBException * @return */public static <T> Object fromXml(String xmlStr, Class<T> pojoClass) throws JAXBException {JAXBContext jaxbContext = JAXBContext.newInstance(pojoClass);Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();Object object = unmarshaller.unmarshal(new ByteArrayInputStream(xmlStr.getBytes()));return object;}
0 0
- JAXB解析xml
- JAXB解析XML
- JAXB解析xml
- JAXB解析XML
- JAXB解析xml
- jaxb解析xml
- JAXB解析xml实例
- JAXB解析xml
- JAXB解析XML
- JAXB解析xml
- JAXB解析生成xml
- jaxb解析xml
- JAXB解析XML
- JAXB解析XML文件
- jaxb解析xml
- 使用JAXB快速解析XML
- Jaxb对XML的解析
- jaxb xml生成与解析
- 设计模式学习(二)适配器模式
- Messagebox.Show()常用参数的讨论
- 剑指offer系列之四十九:数组中重复的数字
- 文件描述符与文件名
- 几款常用PHP开发工具
- JAXB解析XML
- Android 一键直接查看Sqlite数据库数据
- JNI
- hadoop-2.5.2安装配置简易步骤
- Cisco设备静态NAT基本配置步骤
- 优秀的博客地址-冰冻三尺非一日之寒
- iOS storyboard上图片设置适配的一点经验
- JavaScript我的常用函数库
- mysql备份