java xml jaxb_java 解析xml JAXB 嵌套

packagedemon;importjavax.xml.bind.JAXBContext;importjavax.xml.bind.JAXBException;importjavax.xml.bind.Marshaller;importjavax.xml.bind.Unmarshaller;importjava.io.StringReader;importjava.io.StringWriter;importjava.util.ArrayList;importjava.util.List;/*** Created by mabin6 on 2018/8/31.*/

public classtestMain {public static voidmain(String[] args){

conditions conds= newconditions();

condition cdon= newcondition();

List conlist = new ArrayList<>();

cdon.setBdmbkbh("2");

cdon.setExp("12");

cdon.setFhjgjls("2");

cdon.setNo("1");

cdon.setSid("12");

List sjgliat = new ArrayList<>();

sjgsdw sjdw1= newsjgsdw();

sjdw1.setOperation("=");

sjdw1.setValue("30");

sjgliat.add(sjdw1);

sjgsdw sjdw2= newsjgsdw();

sjdw2.setOperation("1=");

sjdw2.setValue("20");

sjgliat.add(sjdw2);

cdon.setSjgliat(sjgliat);

rxxsd rxsd= newrxxsd();

rxsd.setValue("80");

rxsd.setOperation(">");

cdon.setSjgliat(sjgliat);

cdon.setRxxsd(rxsd);

conlist.add(cdon);

conds.setConlist(conlist);

System.out.println(object2Xml(conds));

}/***@paramxmlStr 字符串

*@paramc 对象Class类型

*@return对象实例*/@SuppressWarnings("unchecked")public static T xml2Object(String xmlStr, Classc) {try{

JAXBContext context=JAXBContext.newInstance(c);

Unmarshaller unmarshaller=context.createUnmarshaller();

T t= (T) unmarshaller.unmarshal(newStringReader(xmlStr));returnt;

}catch(JAXBException e) {

e.printStackTrace();return null;

}

}/***@paramobject 对象

*@return返回xmlStr*/

public staticString object2Xml(Object object) {//这个地方传的是一个对象

try{

StringWriter writer= newStringWriter();

JAXBContext context=JAXBContext.newInstance(object.getClass());

Marshaller marshal=context.createMarshaller();

marshal.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,true); //格式化输出

marshal.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");//编码格式,默认为utf-8

marshal.setProperty(Marshaller.JAXB_FRAGMENT, false);//是否省略xml头信息

marshal.setProperty("jaxb.encoding", "utf-8");

marshal.marshal(object, writer);return newString(writer.getBuffer());

}catch(Exception e) {

e.printStackTrace();return null;

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值