zoukankan      html  css  js  c++  java
  • 公用方法的一些转换

    1  json对象转换成实体

    //json对象转换成实体
    	public static <T> T JSONObjectToEntity(JSONObject obj,T entity){
    		Field[] fields = entity.getClass().getDeclaredFields(); // 获取实体类的所有属
    		 try {
    	            for (int j = 0; j < fields.length; j++) { // 遍历所有属性
    	                String name = fields[j].getName(); // 获取属性的名字
    	                //判断JSONObject是否包含该字段
    	                if(!obj.containsKey(name)){
    	                	continue;
    	                }
    	                String param=obj.getString(name); //获取JSONObject里的值
    	                name = name.substring(0, 1).toUpperCase() + name.substring(1); // 将属性的首字符大写,方便构造get,set方法
    	                String type = fields[j].getGenericType().toString(); // 获取属性的类型
    	                if (type.equals("class java.lang.String")) { // 如果type是类类型,则前面包含"class ",后面跟类名
    	                    Method m = entity.getClass().getMethod("set"+name,String.class);
    	                    m.invoke(entity, param);
    	                }
    	                if (type.equals("class java.lang.Integer")) {
    	                    Method m = entity.getClass().getMethod("set"+name,Integer.class);
    	                    m.invoke(entity, Integer.parseInt(param));
    	                }
    	                if (type.equals("class java.lang.Boolean")) {
    	                    Method m = entity.getClass().getMethod("set"+name,Boolean.class);
    	                        m.invoke(entity, Boolean.valueOf(param));
    	                }
    	                if (type.equals("class java.util.Date")) {
    	                	Date date=dateFormat1.parse(param);
    	                    Method m = entity.getClass().getMethod("set"+name,Date.class);
    	                        m.invoke(entity,date);
    	                }
    	                // 如果有需要,可以仿照上面继续进行扩充,再增加对其它类型的判断
    	            }
    	        } catch (NoSuchMethodException e) {
    	        	log("JSONObject转换成实体出现异常:" + CommonUtil.getFormatTime(new java.util.Date(),"-")
    						+ e.getMessage(),"ERROR");
    	        } catch (SecurityException e) {
    	        	log("JSONObject转换成实体出现异常:" + CommonUtil.getFormatTime(new java.util.Date(),"-")
    						+ e.getMessage(),"ERROR");
    	        } catch (IllegalAccessException e) {
    	        	log("JSONObject转换成实体出现异常:" + CommonUtil.getFormatTime(new java.util.Date(),"-")
    						+ e.getMessage(),"ERROR");
    	        } catch (IllegalArgumentException e) {
    	        	log("JSONObject转换成实体出现异常:" + CommonUtil.getFormatTime(new java.util.Date(),"-")
    						+ e.getMessage(),"ERROR");
    	        } catch (InvocationTargetException e) {
    	        	log("JSONObject转换成实体出现异常:" + CommonUtil.getFormatTime(new java.util.Date(),"-")
    						+ e.getMessage(),"ERROR");
    	        } catch (ParseException e) {
    	        	log("JSONObject转换成实体出现异常:" + CommonUtil.getFormatTime(new java.util.Date(),"-")
    						+ e.getMessage(),"ERROR");
    			}
    		return entity;
    	}

    2 将实体转换成map

    //将实体转换成map
    	public static <T> Map<String,Object> beanToMap(T bean){
    		Map<String,Object> map=new HashMap<String,Object>();
    		Field[] fields = bean.getClass().getDeclaredFields(); // 获取实体类的所有属
    		try {
                for (int j = 0; j < fields.length; j++) { // 遍历所有属性
                    String name = fields[j].getName(); // 获取属性的名字
                    String UpperName = name.substring(0, 1).toUpperCase() + name.substring(1); // 将属性的首字符大写,方便构造get,set方法
                    String type = fields[j].getGenericType().toString(); // 获取属性的类型
                    if (type.equals("class java.lang.String")) { // 如果type是类类型,则前面包含"class ",后面跟类名
                        Method m = bean.getClass().getMethod("get" + UpperName);
                        String value = (String) m.invoke(bean); // 调用getter方法获取属性值
                        if (value == null) {
                           map.put(name, "");
                        }else{
                        	map.put(name, value);
                        }
                    }
                    if (type.equals("class java.lang.Integer")) {
                        Method m = bean.getClass().getMethod("get" + UpperName);
                        Integer value = (Integer) m.invoke(bean);
                        if (value == null) {
                            map.put(name, 0);
                         }else{
                         	map.put(name, value);
                         }
                    }
                    if (type.equals("class java.lang.Boolean")) {
                        Method m = bean.getClass().getMethod("get" + UpperName);
                        Boolean value = (Boolean) m.invoke(bean);
                        if (value == null) {
                            map.put(name, false);
                         }else{
                         	map.put(name, value);
                         }
                    }
                    if (type.equals("class java.util.Date")) {
                        Method m = bean.getClass().getMethod("get" + UpperName);
                        Date value = (Date) m.invoke(bean);
                        if (value == null) {
                            map.put(name, new Date());
                         }else{
                         	map.put(name, value);
                         }
                    }
                    // 如果有需要,可以仿照上面继续进行扩充,再增加对其它类型的判断
                }
            } catch (NoSuchMethodException e) {
            	log("实体转换成map出现异常:" + CommonUtil.getFormatTime(new java.util.Date(),"-")
    					+ e.getMessage(),"ERROR");
            } catch (SecurityException e) {
            	log("实体转换成map出现异常:" + CommonUtil.getFormatTime(new java.util.Date(),"-")
    					+ e.getMessage(),"ERROR");
            } catch (IllegalAccessException e) {
            	log("实体转换成map出现异常:" + CommonUtil.getFormatTime(new java.util.Date(),"-")
    					+ e.getMessage(),"ERROR");
            } catch (IllegalArgumentException e) {
            	log("实体转换成map出现异常:" + CommonUtil.getFormatTime(new java.util.Date(),"-")
    					+ e.getMessage(),"ERROR");
            } catch (InvocationTargetException e) {
            	log("实体转换成map出现异常:" + CommonUtil.getFormatTime(new java.util.Date(),"-")
    					+ e.getMessage(),"ERROR");
            } 
    		return map;
    	}
    3 将中文转换成utf-8

    	//将中文转换成utf-8
    	public static String encodeUTF8(String xmlDoc){
    		String str="";
    		try {
    			str=URLEncoder.encode(xmlDoc,"utf-8");
    			return str;
    		} catch (Exception e) {
    			str=e.toString();
    		}
    		return str;
    	}

    4 将utf-8转换成中文字符

    //将utf-8转换成中文字符
    	public static String decodeUTF8(String str){
    		String xmlDoc="";
    		try {
    			xmlDoc=URLDecoder.decode(str,"utf-8");
    			return xmlDoc;
    		} catch (Exception e) {
    			xmlDoc=e.toString();
    		}
    		return xmlDoc;
    	}

    5 对于登录等输入操作进行殊字符判断

    //对于登录等输入操作进行殊字符判断
    	public static boolean sql_inj(String str) {
    		String inj_str = "':and:exec:insert:select:delete:update:count:*:%:chr:mid:master:truncate:char:declare:;:or 1:-:+:,";
    		String inj_stra[] = inj_str.split(":");
    		for (int i = 0; i < inj_stra.length; i++) {
    			if (str.indexOf(inj_stra[i])!=-1) {
    				return false;
    			}
    		}
    		return true;
    	}

    6 xml转化为string

    /**
    	 * @Description:xml转化为string
    	 * Author: 
    	 * Date: 2016/3/27
    	 * Time: 19:53
    	 * Version: 0.1
    	 * document转换成string
    	 * @param document
    	 * @return
    	 */
    	public String toStringFromDoc(Document document) {
    		String result = null;
    		if (document != null) {
    			StringWriter strWtr = new StringWriter();
    			StreamResult strResult = new StreamResult(strWtr);
    			TransformerFactory tfac = TransformerFactory.newInstance();
    			try {
    				Transformer t = tfac.newTransformer();
    				t.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
    				t.setOutputProperty(OutputKeys.INDENT, "yes");
    				t.setOutputProperty(OutputKeys.METHOD, "xml"); // xml, html,text
    				t.setOutputProperty(
    						"{http://xml.apache.org/xslt}indent-amount", "4");
    				t.transform(new DOMSource(document.getDocumentElement()),
    						strResult);
    			} catch (Exception e) {
    				log(e);
    			}
    			result = strResult.getWriter().toString();
    			try {
    				strWtr.close();
    			} catch (IOException e) {
    				log(e);
    			}
    		}
    		return result;
    	}

    7 根据string 生成xml文件

    /**
    	 * @Description:根据string 生成xml文件
    	 * Author: 
    	 * Date: 2016/3/27
    	 * Time: 19:53
    	 * Version: 0.1
    	 * @param xmlString
    	 * @param fileName
         */
    	public void buildXmlFile(String xmlString,String fileName){
    		try{
    			DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    			// step 2:获得具体的dom解析器
    			DocumentBuilder db = dbf.newDocumentBuilder();
    			StringReader stringReader  =  new StringReader(xmlString);
    			InputSource  inputSource  =  new InputSource(stringReader);
    			Document  newDoc  =  db.parse(inputSource ) ;
    			TransformerFactory tfactory=TransformerFactory.newInstance();
    			Transformer transformer=tfactory.newTransformer();
    			DOMSource source=new DOMSource(newDoc);
    			StreamResult result=new StreamResult(new File(fileName));
    //	        transformer.setOutputProperty("encoding","UTF-8");
    			transformer.transform(source,result);
    		}catch (Exception e) {
    			log(e);
    		}
    
    	}

    8 xml转换为json格式的数据

    /**
    	 * @Description:xml转换为json格式的数据
    	 * Author: 
    	 * Date: 2016/3/27
    	 * Time: 19:53
    	 * Version: 0.1
    	 * @param path
         * @return
         */
    	public static String toJson(String path) {
    		DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    		// step 2:获得具体的dom解析器
    		DocumentBuilder db = null;
    		Document document = null;
    		try {
    			db = dbf.newDocumentBuilder();
    			document = db.parse(new File(path));
    		} catch (ParserConfigurationException e) {
    			e.printStackTrace();
    		} catch (SAXException e) {
    			e.printStackTrace();
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    		// step3: 解析一个xml文档,获得Document对象(根结点)
    		NodeList list = document.getElementsByTagName("Graphics");
    		Element rootElement = (Element)list.item(0);
    		NodeList nodeList = rootElement.getElementsByTagName("Graphic");
    		StringBuilder json = new StringBuilder("{"Graphic":[");//
    		if(nodeList != null){
    			for (int i = 0 ; i < nodeList.getLength(); i++){
    				Element element = (Element)nodeList.item(i);
    				String content = element.getElementsByTagName("Content").item(0).getFirstChild().getNodeValue();
    				if(i==0){
    					json.append(content);
    				}else{
    					json.append(","+content);
    				}
    
    			}
    		}
    		json.append("]}");
    		return json.toString();
    	}

    9 日期加减

    /**
    	 * 日期加减
    	 * @param date 传入的日期
    	 * @param days 加减的天数
    	 * @return 新的日期
    	 */
    	public static Date getNewDay(Date date,int days){
    		Date retDate = new Date();
    		try {
    		    retDate = new Date(date.getTime() + ((-days) * 24 * 60 * 60 * 1000));
    		} catch (Exception e) {
    			CommonUtil.log(e);
    		}
    		return retDate;
    	}

  • 相关阅读:
    设计模式:面向对象设计的六大原则 (绝对详细)
    idea创建maven项目速度慢?别急,这有三种方案
    Spring Cloud开发人员如何解决服务冲突和实例乱窜?
    Spring Cloud Zuul的动态路由怎样做?集成Nacos实现很简单
    Spring Boot自定义配置实现IDE自动提示
    阿里注册中心Nacos生产部署方案
    日志排查问题困难?分布式日志链路跟踪来帮你
    zuul集成Sentinel最新的网关流控组件
    YAML中多行字符串的配置方法
    JetBrains 第二轮:再为免费全家桶续命三个月
  • 原文地址:https://www.cnblogs.com/t0404/p/10290956.html
Copyright © 2011-2022 走看看