zoukankan      html  css  js  c++  java
  • xml数据映射到对象

    /**
    * parseXmlToJavaBean(xm转JavaBean)
    * Bean类及其属性需要添加XStreamAlias、XStreamAsAttribute注解与xml节点/属性名称匹配
    *
    * @param xml
    * @param beanClass 转换的目标Bean
    * @param ignoreFields 指定忽略的Bean属性或者属性内部属性
    * @return T
    * @throws @since 1.0.0
    */
    @SuppressWarnings("unchecked")
    public static <T> T parseXmlToJavaBean(String xml, Class<?> beanClass, List<String> ignoreFields) {

    // 转换的目标Bean
    T javaBean = null;
    XStream xStream = new XStream(new DomDriver()) {

    @Override
    protected MapperWrapper wrapMapper(MapperWrapper next) {

    return new MapperWrapper(next) {

    @Override
    @SuppressWarnings("rawtypes")
    public boolean shouldSerializeMember(Class definedIn, String fieldName) {

    if (null != ignoreFields && ignoreFields.contains(fieldName)) {
    return false;
    }
    return super.shouldSerializeMember(definedIn, fieldName);
    }
    };
    }
    };
    // 启用注解
    xStream.processAnnotations(beanClass);
    //忽略未知节点
    xStream.ignoreUnknownElements();
    registerConverter(xStream);
    // 执行xmlString-->Bean转换
    javaBean = (T) xStream.fromXML(xml);
    return javaBean;
    }

  • 相关阅读:
    VC++MFC对话框程序中给对话添加背景图片
    C++中的引用
    64位Ubuntu 13.04 安装Bochs 2.3.5
    笔记
    ORG 07C00H的意思
    编译三思
    《黑客与画家》笔记
    linux 2.6up的设备和设备驱动模型
    linux嵌入式系统驱动程序的阻塞与异步
    【转】PWM占空比和分辨率
  • 原文地址:https://www.cnblogs.com/chenxiaoxian/p/9758709.html
Copyright © 2011-2022 走看看