CrazyTree_9527 2016-07-08 07:18 采纳率: 0%
浏览 1919

java 在解析xml成对象的时候,有什么办法将自闭和元素设置为null,而不是new Object

在用jdk自带的JAXB和xstream解析xml的时候,如果遇到这样的元素。转为对象后,变成new Object();
能否通过什么方式,让他变为null.

 @XStreamAlias("root")
public class RootBean {
    @XStreamAlias("DocInfo")
    private DocInfoBean docInfo;
    @XStreamAlias("PAGES")
    private List<PageBean> pages;
    public DocInfoBean getDocInfo() {
        return docInfo;
    }
    public void setDocInfo(DocInfoBean docInfo) {
        this.docInfo = docInfo;
    }
    public List<PageBean> getPages() {
        return pages;
    }
    public void setPages(List<PageBean> pages) {
        this.pages = pages;
    }

    //getter和setter


}
 public class DocInfoBean {
    @XStreamAlias("APP_CODE")
    private String appCode;
    @XStreamAlias("APP_NAME")
    private String appName;
    @XStreamAlias("BUSI_NO")
    private String busiNo;
        //getter和setter
        ...
        }
 @XStreamAlias("PAGE")
public class PageBean {
    @XStreamAlias("DOC_TYPE")
    @XStreamAsAttribute
    private String docType;
    @XStreamAlias("DOC_NAME")
    @XStreamAsAttribute
    private String docName;
    @XStreamAlias("PAGE_URL")
    @XStreamAsAttribute
    private String pageUrl;
    @XStreamAlias("PAGE_NAME")
    @XStreamAsAttribute
    private String pageName;
    @XStreamAlias("UP_USER")
    @XStreamAsAttribute
    private String upUser;
    @XStreamAlias("UP_ORG")
    @XStreamAsAttribute
    private String upOrg;
    @XStreamAlias("UP_TIME")
    @XStreamAsAttribute
    private String upTime;
        //getter和setter
        }

解析方法:

 private static RootBean getRootBean(String xml)  {
        InputStreamReader reader = null;
        XStream xStream=new XStream(new DomDriver("UTF-8", new XmlFriendlyNameCoder("-_", "_")));
        xStream.alias("root", RootBean.class);
        xStream.autodetectAnnotations(true);
        return (RootBean) xStream.fromXML(xml);
    }

需要解析的xml为:

<root>
  <DocInfo/>
  <PAGES>
    <PAGE DOC_TYPE="010" DOC_NAME="身份证" PAGE_URL="1111.jpg" PAGE_NAME="0000.jpg" UP_USER="12433124" UP_ORG="惠普" UP_TIME="34543312321"/>
    <PAGE DOC_TYPE="010" DOC_NAME="身份证" PAGE_URL="1111.jpg" PAGE_NAME="0000.jpg" UP_USER="12433124" UP_ORG="惠普" UP_TIME="34543312321"/>
    <PAGE DOC_TYPE="010" DOC_NAME="身份证" PAGE_URL="1111.jpg" PAGE_NAME="0000.jpg" UP_USER="12433124" UP_ORG="惠普" UP_TIME="34543312321"/>
  </PAGES>
</root>

  • 写回答

1条回答 默认 最新

  • zqbnqsdsmd 2017-03-13 00:13
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。